プロが教える店舗&オフィスのセキュリティ対策術

クリックで特定のムービークリップが再生・停止するスクリプトをAS2.0(ActionScript 2.0)で記述したいです。
現在はAS1.0で下記のようにムービークリップに記述しています。
これをAS2.0に直すとどのような記述になるでしょうか。宜しくお願いいたします。


onClipEvent (load) {
mode = true;
}

on (release) {
mode = !(mode);
if (mode) {
this.play();
} else {
this.stop();
}
}

A 回答 (1件)

大前提の前置きですが


ActionScript 2.0 と 3.0 は別物で基本的に互換性などがないのです。
しかしですね,
ActionScript 2.0 は ActionScript 1.0 の拡張であって完全に互換性があるのです。

つまり
ActionScript 1.0 はそのままで ActionScript 2.0 とも言えるのです。
(ActionScript 1.0 で書いても パブリッシュ設定は 2.0 で何の問題もないはずです。)

ですから
書かれていらっしゃるスクリプトも
ActionScript 1.0 の範囲内 ですから,すなわち ActionScript 2.0 の範囲内なんです。
(「15歳は 18歳未満でもあり,20歳未満でもある。」これと同じです。)

したがって
書かれていらっしゃるスクリプトを ActionScript 2.0 範囲内で書き直しても
全く同じということになります。



==================

ただですね,
書かれていらっしゃるスクリプトは
Flash 5 時代のスクリプトです。

そこにはほとんどメリットがありません。
Flash 5 流では自由度が少なかったり,
携帯(Flash Lite 1.x)では Flash 4 以下のものしか動かなかったりで
Flash 5 形式で止まっていることが一番意味がないです。

具体的には

onClipEvent (load) {
mode = true;
}

↑この onClipEvent ハンドラが Flash 5 特有の書き方です。

どうしましょうか?
上で書きましたが,別にこれはこれで ActionScript 2.0 範囲内なんですよ。
ですから変えるにしても
変え方は作者の意志によって全く変わるわけです。
(「『15歳を大人っぽく』と言っても,『少女時代』風にすることもあれば,『松任谷由実』風にするのもアリなわけで...。」これと同じです。)



そうですね。。。

onClipEvent (load) {
mode = true;
}

などを削除して
これを書いた "ムービークリップ内" の "フレーム1" に
同じ内容の ActionScript 2.0 コードを書くことにしますか↓。

//---------------------------------------
//もし mode が未定義であれば
if (mode == undefined) {
//変数 mode:ブール値 を true にする
var mode:Boolean = true;
}

//このムービークリップをクリックしたときの
//イベントハンドラメソッドを定義:戻り値なし
this.onRelease = function():Void {
//変数modeのtrueとfalseを入れ替える
mode = !mode;
//もし変数modeの値がtrueであれば
if (mode) {
//このムービークリップの再生を開始
this.play();
//もし変数modeの値がfalseであれば
} else {
//このムービークリップの再生を停止
this.stop();
}
};
//---------------------------------------



本格的 ActionScript 2.0 という感じではないですが
少なくとも ActionScript 1.0 の範囲内ではありません。
(パブリッシュ設定を ActionScript 1.0 にするとエラーが出るはずです。)
(完全な20歳とは言い切れないとしても少なくとも18歳以上です。)
    • good
    • 0
この回答へのお礼

大変ご丁寧な解説ありがとうございます!
またセンスの良い喩え、大変分かりやすく感動いたしました♪^^

なるほど、ActionScript1.0は2.0の範囲内なのですね。
勉強不足で申し訳ないです。全く知りませんでした。。
AS2.0のコードは説明まで付記して頂けたのでよく理解出来ました!
ただ自分で記述出来る様になるには相当勉強をする必要が有りそうです(笑)

さっそく試してみたいと思います。
とても困っていたので大変感謝しております!!
ありがとうございました。^^

お礼日時:2011/07/14 22:24

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