質問ページ4 / 217


質問ページ4 / 217

質問ページ4/217

概要functionについて
投稿者Parafla Quality
状態
カテゴリーParaFla!
投稿日2014-01-22 (水) 17:50:07
バージョン1.37

質問内容

function文をmc1という名のスプライトに

「 onClipEvent?(enterFrame){ ・・・・・ }

function test(){

} 」 のように外に書く状況を考えます。

このとき、このスプライトの中の変数aを、 function文の中に書いてしまう事は可能ですか?

実際試してみると、しっかり動くのですが、 onClipEvent?の外に書いた場合、何よりも先にそれが評価されるとのことなので、 この関数が定義される瞬間には、aというのはまだ定義されていないと思います。

なので、こういった記述をして負荷がかかったりしないかが不安です。 よろしくお願いします。

回答

  • function文中に書いてしまうとtest()が実行されるたびに定義しなおされることになります。onClipEvent?(load)の中で定義するのがよいと思われます -- 2014-01-22 (水) 19:34:59
  • ちなみにonClipEvent?(load)ではtest()は実行されませんので、「何よりも先にそれが評価される」というのは間違いでonClipEvent?(load)の方が優先されていることになります
    onClipEvent(load){
    a=1;
    trace(a);
    test();
    }
    -
    onClipEvent(enterFrame){
    c=2;
    trace(c);
    }
    function test(){
    b=3;
    trace(b);
    } 
    結果:122222222222・・・・(3がないということは実行されなかったということ) -- 2014-01-22 (水) 19:37:46
  • まず、ミスについてはすいません。理解しました。 -- 2014-01-23 (木) 22:27:51
  • そして、onClipEvent?内で定義するとは、http://www.wikihouse.com/ParaFla/index.php?%BC%C1%CC%E4%A5%DA%A1%BC%A5%B8%2F126のやり方の事でしょうか?これについて詳しく書いてあるページを教えて頂けませんか? -- 2014-01-23 (木) 22:28:53
  • (load)内です -- 2014-01-24 (金) 19:01:11
  • しかし、 load内に普通のfunction test(){・・・}の形式で書いてしまうとエラーが出ますよね? -- 2014-01-24 (金) 23:46:23
  • function文内で使う定数をどこで定義したらいいかという質問ですよね?それの回答です -- 2014-01-25 (土) 19:50:27
  • ああ!なるほど!上の例でonClipEvnet?(load)の方がfunctionの定義(例えばonClipEvent?(enterFrame)の外に書く)より先に評価されるので、loadのほうに変数を先に定義すればそれでオッケーという事ですね! -- 2014-01-25 (土) 21:25:19
  • です -- 2014-01-26 (日) 20:20:10
  • どうもありがとうございました!! -- 2014-01-26 (日) 21:50:34