電子書籍の厳選無料作品が豊富!

始めまして。
flash初心者です。

開発環境は flash professional 8 です。

引数の扱い方についてなのですが。
関数の呼び出した先で引数に値を入れて、
関数内で使いたいのですがうまくいきません。
traceで受け取っている値を表示したところ、
希望どうりの値を受け取っているのですが.....
なにか根本的なことを間違えているのでしょうか、
どうか教えてください、
宜しくお願いいたします。

function btRollOver(hot) {
trace(hot);
_root.gotoAndPlay(hot);
}

box1.onRollOver = btRollOver("frame1");

A 回答 (1件)

> _root.gotoAndPlay(hot);


に関しては別問題があるかもしれないので無視させていただきます。
(別問題とは 「frame1」というフレームラベルを書いていないとか,書いていても階層が違うとか。)



◎解決策1
----------------------------------
function btRollOver(hot) {
trace(hot);
}

box1.onRollOver = function():Void {
btRollOver("frame1");
};
----------------------------------


◎解決策2
----------------------------------
function btRollOver(hot):Function {
return function ():Void {
trace(hot);
};
}

box1.onRollOver = btRollOver("frame1");
----------------------------------



「関数A()」 は 「関数Aを実行しろ」 ということです。
box1.onRollOver などに関数を代入するという意味ではなくなります。
    • good
    • 0
この回答へのお礼

本当にご連絡が遅くなってしまい
本当に申し訳御座いませんでした。

例まで書いて頂いて本当に分かりやすかったです。
解決策1で大成功でした。

本当に有難う御座いました。

お礼日時:2010/05/11 12:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!