メイン コーダーズルーム【スクリプト系】 実行する順序を自在にあやつる | 投稿するにはまず登録を |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
sunafu | Åê¹ÆNo.13707 投稿日時: 2004-12-28 22:58 |
新米 居住地: 投稿: 19
使用環境:
WinXP,FlashMX,秀丸 |
Re: 実行する順序を自在にあやつる どうもありがとうございます。
野中さん、申し訳ありません。 どうもかなり混乱していたようです(^^;) あっさり解決しました。 順番的にうんぬんは忘れてください。 salvoxさんもありがとうございます。 大元のファイルが思ったりより複雑になって (僕にとってはですが…^^;) どうまとめたら、後で困らないのか、 悩んでいたところでした。 その手は、たしかによさそうですね(^^) |
salvox | Åê¹ÆNo.13650 投稿日時: 2004-12-26 5:40 |
常連 居住地: 東京都 投稿: 73
使用環境:
Windows2000 FlashMX テキストエディター:EmEditor |
Re: 実行する順序を自在にあやつる ど?も、Salvoxです。
順次…、確かに悩みますね。 多分、COBOL時代を懐かしむ世代でなければ、 『順次・分岐・反復』の順次を取り上げてるわけでもないしょう(笑) これは、僕の推測ですが・・・ 多分、sunafuさんが言いたいことは、『なぜ、動作しない?』ではなく、ASファイルにする際に、sunafuさんがよういた構造が、一般的なのかどうかを聞いてるのだと思うんですが・・・。 で、僕からなんですが、 経験上 this.onEnterFrameハンドラは、特殊な構造を除き、 なるべく、Flash内に直接書いた方が都合が良いです。 理由は、3ヶ月後の自分の為。 後から読んだ時にASファイルを開かずに済むし、『あれ、ここスレッドで動いてる?どっからコールされてんの?』って疑問をもたなくて済むから(自分のソースなのに)。 書き方としては、 testAction()関数を ASファイルで宣言し。 FLAファイル上では、this.onEnterFrame = this.testAction; っと書くのが実作業上もっとも効率がイイ。 ASファイルの利点として『使いまわし』をする為なので、this.onEnterFrame をASファイルに書き、 宣言をFLAファイル内でやったんでは、別のFlashを組む際に #include宣言だけじゃ動作しませんよね? いちいち、昔のFLAを開き、どこかに書いてある分からない、testActionを探し、コピーし貼り付けないといけない。(面倒くせ???)、下手したらバグの元です。 関数宣言をASファイルにしたら、FlashならVer6以降で完全動作が期待できるし、実装側でonClipEvent(enterFrame)に書き直すことで、Ver4(関数仕様によりますが)仕様に早変わり。何より、後から見る人がtestActionの中身を知る必要がないんです。後からいじる人(もちろん自分も含む)が、いち早く知りたいのは、その動作がスレッドで行われてるかどうか。 プログラミングで、コメント文書けとか、関数仕様を残せとか、後から見た人のことを考えて書けってよく言われますが、あれの『後から見た人』って『未来の自分』なんですよ・・・(-- ;) いやマジデ!!3年前のプログラムなんて覚えてないから...。(覚えてたら、別分野でその記憶力を活かすことをお勧めします。記憶マスターになるべきです。)
|
野中文雄 | Åê¹ÆNo.13638 投稿日時: 2004-12-25 17:09 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: 実行する順序を自在にあやつる ご質問のポイントが、理解できません。
まず、問題の切分けをしましょう。 #includeステートメントは、その動作自体を問題にする場合を除いて、通常スクリプトの動作とは関係ありません。FlashはSWFの書出し時に、#includeステートメントを見つけると、指定された.asファイルを開いて、その内容のスクリプトをステートメントと置替えます。つまり、書出す前に.asファイルからコピーして、#includeステートメントに上書きペーストするようなものです。 したがって、SWFには#includeステートメントが存在しないことになります。SWFの動作は、純粋に(外部ファイルからペーストされる)外部スクリプトの内容に従います。 以下のスクリプトは、ターゲットパスが正しく、タイムラインにMovieClipインスタンスが存在すれば、問題なく動作するように思われます。もちろん、#includeステートメントを使ったとしても、動作には何の変わりもありません。 引用: sunafuさんは書きました: 「順番的に」というのが、何の「順番」を意味しているのかわかりかねます。 引用: 順番的に実行されないというのは、わかっているつもりなんですが、 |
sunafu | Åê¹ÆNo.13637 投稿日時: 2004-12-25 15:56 |
新米 居住地: 投稿: 19
使用環境:
WinXP,FlashMX,秀丸 |
実行する順序を自在にあやつる フレームアクションスクリプト
#include "debug.as" debug.asの中身 this.onEnterFrame = function () { testAction() //debug2.asにアクセス }; ムービクリップ > フレームアクションスクリプト #include "debug2.as" debug2.asの中身 function testAction() { trace ("実行"); }; すいません、質問です。 順番的に実行されないというのは、わかっているつもりなんですが、 こういうことがやりたい場合、どういうつくりにしてあげればよいのでしょうか? |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |