人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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 に暗黙で型変換されています。

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

●質問者: hopefully
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Flash ITM String test trace
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● pahoo
●23ポイント

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

× var itm:XML;

○ var itm:String;

ではないでしょうか?

◎質問者からの返答

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

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

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


2 ● angemaries
●23ポイント

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にしようとしたができませんってことで。

◎質問者からの返答

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

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("適用");

}

}

}

ですが動きません。

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

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

お願いします。


3 ● pahoo
●22ポイント

1のコメント:

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

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


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

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

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

◎質問者からの返答

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

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("適用");

}

}

}

ですが動きません。

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

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

お願いします。


4 ● 牛乳先生(tukihatu)
●22ポイント

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

× 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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ