FLASH CS3でXMLからデータを取得した

値を一定間隔で実行したいのですが
以下の文だとエラーになります。
//取得できたXMLをfor eachで回します。
var results:XML = new XML(loader.data);
var itm:XML;
for each( itm in results.shop ){
var timerID = setInterval("test()",1000, itm);
trace(timerID);
}
test()ファンクッションにitmという値を渡して
表示する値を変えようとしたいのですが
エラーがこんなんが出ます。

1067: 型 String の値が、関連しない型 Function に暗黙で型変換されています。

だれかわかる方いましたら教えて下さい。
お願いします。

回答の条件
  • 1人10回まで
  • 登録:2008/10/05 21:35:17
  • 終了:2008/10/12 21:40:02

回答(4件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332008/10/05 22:02:44

ポイント23pt

XMLの構造が分からないのですが、

× var itm:XML;

○ var itm:String;

ではないでしょうか?

id:hopefully

変えてもだめでした・・・

XMLの値は取得出ているのですが

XMLのデータは使えないのでしょうか?

2008/10/05 22:53:41
id:angemaries No.2

angemaries回答回数80ベストアンサー獲得回数22008/10/06 00:00:07

ポイント23pt

setInterval(functionReference:Function, interval:Number, [param1:Object, param2, ..., paramN]) : Number

setInterval(objectReference:Object, methodName:String, interval:Number, [param1:Object, param2, ..., paramN]) : Number

エラーはXMLではなく、"test()"で出ていると思いますが。

上記の1行目が適用され、"test()"をFunctionにしようとしたができませんってことで。

id:hopefully

すいません。ソースを以下のように変更してみました。

package {

//必要なパッケージをインストールします。

import flash.display.*

import flash.events.*;

import flash.text.*;

import flash.net.*;

import flash.geom.*;

import fl.containers.UILoader;

public class TestAA extends MovieClip {

//ネームスペースの回避

namespace ns = 'http://aaaa.bbb.ccc';

use namespace ns;

public function TestAA ( itm :XML) {

Fra = setInterval (getFunc, 1000);

}

function getFunc(){

trace("適用");

}

}

}

ですが動きません。

なにか指定がおかしいのでしょうか?

上記ソースで動いて、なおかつ引数を渡せれたらいいです。

お願いします。

2008/10/06 12:59:51
id:pahoo No.3

pahoo回答回数5960ベストアンサー獲得回数6332008/10/06 09:53:24

ポイント22pt

1のコメント:

XMLのデータは使えないのでしょうか?

XMLからパラメータを取り出していれば、それはないと思います。


ご質問の情報だけですと分からないことが多いので、以下の確認をお願いします。

  1. itm の型は何ですか?
  2. test 関数の引数は1つで、itm と同じ型を引数として受け取れるようになっていますか?

※設定された回答回数の上限になりました。さらにフォローが必要でしたら、コメント欄を開けていただくか、回答回数を増やしてください。

id:hopefully

すいません。ソースを以下のように変更してみました。

package {

//必要なパッケージをインストールします。

import flash.display.*

import flash.events.*;

import flash.text.*;

import flash.net.*;

import flash.geom.*;

import fl.containers.UILoader;

public class TestAA extends MovieClip {

//ネームスペースの回避

namespace ns = 'http://aaaa.bbb.ccc';

use namespace ns;

public function TestAA ( itm :XML) {

Fra = setInterval (getFunc, 1000);

}

function getFunc(){

trace("適用");

}

}

}

ですが動きません。

なにか指定がおかしいのでしょうか?

上記ソースで動いて、なおかつ引数を渡せれたらいいです。

お願いします。

2008/10/06 12:59:47
id:tukihatu No.4

牛乳先生(tukihatu)回答回数180ベストアンサー獲得回数322008/10/06 15:58:49

ポイント22pt

とりあえず流れがよくわからないけど基本的なところをツッコムと

× var timerID = setInterval("test()",1000, itm);

○ var timerID = setInterval(test,1000, itm);

文法的にはコレですよ。関数をクォートで囲ってはいけなかったと思います。

http://hakuhin.hp.infoseek.co.jp/main/as/fps.html#FPS_03

http://d.hatena.ne.jp/atsunosuke/20060416/p1

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません