質問: true; _root.m01.stop(); } それとも、そもそもswfにスクリプトを設定することはできないのでしょうか。 いろいろと間違っているかも知れませんが、ご教授ください。 よろしくお願い致します。
回答: > 下記のようなスクリプトはswfには使用できないのでしょうか。 それと > それとも、そもそもswfにスクリプトを設定することはできないのでしょうか。 と書かれていらっしゃる意味がよくわかりませんが, onclipevent (mousedown) {...} はいったいどこに書かれたのでしょうか? swf は外部swfでしょう? たとえば,「sample.swf」。 「sample.swf」 はファイルですから, ファイル自体にそもそも onclipevent (mousedown) {...} など書けないでしょう。 flashmx2004 の場合(actionscript2.0の場合), スクリプトは, 「フレーム」 と 「ムービークリップ」 と 「ボタン」 そして, 「外部 as ファイル(テキスト)」 この4箇所に書けます。 この4箇所のうち, onclipevent (mousedown) {...} は 「ムービークリップ」 自体にしか書けないイベントハンドラです。 「フレーム」 や 「ボタン」 に書いた場合はエラーになります。 ちょっと歴史的経緯を入れます。 on(release) など on() イベントハンドラ は, 初代 flash からあって, これは元は 「ボタン」 自体のみに書けるスクリプトです。 onclipevent (mousedown) など onclipevent () イベントハンドラは, flash 5 から登場して(後にすぐに廃れる), これは 「ムービークリップ」 自体のみに書けるスクリプトです。 flash mx (本当は flash 6 であるべきバージョン)になって, on() イベントハンドラ は,ムービークリップにも書けるようになりました。 それと同時に, on(release) は, ○○.onrelease = function() {} onclipevent (mousedown) は, ○○.onmousedown = function() {} というような,イベントハンドラメソッド の形で,フレームに書けるようになりました。 この イベントハンドラメソッド の登場によって, on() イベントハンドラ の方は比較的長く生き残りましたが, onclipevent () イベントハンドラ の方はみるみるうちに廃れて行きました。 onclipevent (mousedown) {...} をフレームに書きたい場合は, ------------------------------- this.onmousedown = function() { _root.m01._visible = true; _root.m01.stop(); }; ------------------------------- のようになります。 しかし onclipevent (mousedown) や this.onmousedown は, flash上のどこをプレスしてもイベントが発生しますよ。 ムービークリップに指定するというよりも, イメージ的には flash 全体に指定するという感じになります。 あと別件で気になるのが _root です。 親swf内の ムービークリップ に 外部swf をロードした場合, 外部swf は単なるムービークリップ扱いになりますから, その中に書かれた _root は,親swfの _root になります。 _root がずれることが多々ありますので,その点注意してください。 onclipevent (mousedown) などに関する詳細は, 下記 url を参考にしてみてください。 「ムービークリップのイベントハンドラ」 http://homepage3.nifty.com/ginga-b/mx/mc_eventhandler.html