メイン コーダーズルーム【スクリプト系】 同一フレームでの複数のenterFrameのdelete | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
korosuke | Åê¹ÆNo.20706 投稿日時: 2005-10-8 20:34 |
新米 居住地: 投稿: 5
使用環境:
Windows XP Pro Flash MX2004 Pro |
同一フレームでの複数のenterFrameのdelete こんばんは。
ひとつのフレーム上に onEnterFrameのfunctionをいくつかおいている場合、 そのうちのひとつだけをdeleteすることはできないでしょうか? よろしくおねがいします。 |
野中文雄 | Åê¹ÆNo.20707 投稿日時: 2005-10-8 20:39 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: 同一フレームでの複数のenterFrameのdelete
|
korosuke | Åê¹ÆNo.20715 投稿日時: 2005-10-9 0:55 |
新米 居住地: 投稿: 5
使用環境:
Windows XP Pro Flash MX2004 Pro |
Re: 同一フレームでの複数のenterFrameのdelete すいません、意味不明ですね。。
というかなにか勘違いしてるみたいです・・・。 例としてあまりよろしくないかと思いますが、 以下のようなコードを書いて実行してみたところ、 fnc1のenterFrameは実行されませんでした。 fnc2のenterFrameで上書き(?)されているのでしょうか。 function fnc1() { trace("fnc1"); this.onEnterFrame = function() { cnt1++; trace("cnt1__"+cnt1); if (cnt1>10) { delete onEnterFrame; } }; } function fnc2() { trace("fnc2"); this.onEnterFrame = function() { cnt2++; trace("cnt2__"+cnt2); if (cnt2>20) { delete onEnterFrame; } }; } var cnt1 = 0; var cnt2 = 0; fnc1(); fnc2(); 同じフレーム上ではひとつのenterFrameしか実行できないということでしょうか? 色々と理解不足でこの説明もわかりにくくてすいません。 よろしくお願いします。 |
野中文雄 | Åê¹ÆNo.20717 投稿日時: 2005-10-9 2:47 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: 同一フレームでの複数のenterFrameのdelete MovieClip.onEnterFrameイベントハンドラは、MovieClipのメソッドです。設定は代入文ですので、その点を捉えればプロパティと同じ性質をもちます。
this._x = 0; this._x = 100; 結果は、後に代入した値が設定され、その前の値は上書きされます。 参考:「メソッドもプロパティ」(PDF/約280KB) 引用: korosukeさんは書きました: 同じ「MovieClipインスタンス」には、1度にひとつのMovieClip.onEnterFrameメソッドしか設定できません。 引用: 同じフレーム上ではひとつのenterFrameしか実行できないということでしょうか? |
korosuke | Åê¹ÆNo.20718 投稿日時: 2005-10-9 3:00 |
新米 居住地: 投稿: 5
使用環境:
Windows XP Pro Flash MX2004 Pro |
Re: 同一フレームでの複数のenterFrameのdelete ご回答ありがとうございます。
まだなんとなくではありますが理解できました。 それが適切かどうかはわかりませんが、複数のenterFrameを設定しようと思ったら、 別のMovieClipを置いてそこに設定する、 という方法になるということでしょうか。 ありがとうございました。 |
野中文雄 | Åê¹ÆNo.20719 投稿日時: 2005-10-9 3:29 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: 同一フレームでの複数のenterFrameのdelete そういうことになります。その場合、ターゲットのMovieClipは空で差支えないでしょうから、MovieClip.createEmptyMovieClip()メソッドでインスタンスを生成してもよいと思います。
引用: korosukeさんは書きました: もうひとつの考え方として、名前のある通常のfunctionとして定義した処理を、MovieClip.onEnterFrameメソッドから呼出すという方法もあります。
|
korosuke | Åê¹ÆNo.20745 投稿日時: 2005-10-10 23:42 |
新米 居住地: 投稿: 5
使用環境:
Windows XP Pro Flash MX2004 Pro |
Re: 同一フレームでの複数のenterFrameのdelete ご返信ありがとうございます。
空MovieClipを作る方法は簡単でよさそうですね。 二つ目の方法は目から鱗でございました。 大変勉強になりました。ありがとうございます。 |
野中文雄 | Åê¹ÆNo.20746 投稿日時: 2005-10-11 4:25 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: 同一フレームでの複数のenterFrameのdelete Flash Player 7以降でしたら、OnEnterFrameBeaconクラスを使う手もありますね。MovieClip.onEnterFrameイベントで複数の関数を呼出したいという要望には近いと思われます。
|
korosuke | Åê¹ÆNo.20840 投稿日時: 2005-10-16 0:07 |
新米 居住地: 投稿: 5
使用環境:
Windows XP Pro Flash MX2004 Pro |
Re: 同一フレームでの複数のenterFrameのdelete 野中さま
ご助言ありがとうございます。 ActionScript2.0、でしょうか? ぜんぜん勉強できてません。。 この機に新たな関数をいろいろ見たのですが、便利そうなのがありますね。 loadClipとかprintJobとか。 いろいろと教えていただきありがとうございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |