- ベストアンサー
Flash MCのモーショントウィーンの問題
- Flash MCのモーショントウィーンにおける問題について
- Flash CS5 ActionScript 3.0で制作しているムービークリップに色変更とモーショントウィーンのスクリプトを書いていますが、ボタンの順番によってモーショントウィーンがうまく動きません。
- ボタン1を押した後にボタン2を押すとモーショントウィーンが動かない問題が発生しています。ボタン2を押した後にボタン1を押す場合は正常に動作しますが、この順番に制約があるため改善をお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
書かれていらっしゃるスクリプトのままでは モーショントゥイーンの前に, エラーの大嵐でパブリッシュ不可能ですよ。。。 スクリプトを次のように修正して 下の【添付図】↓のようなものを作ったところ 確かに,「test」のモーショントゥイーンは止まりました。 //---修正----------------------------- stop(); btn.addEventListener(MouseEvent.CLICK, black); function black(event:MouseEvent):void { var color = new flash.geom.ColorTransform(0,0,0,1); test.transform.colorTransform = color; } btn2.addEventListener(MouseEvent.CLICK, goPlay); function goPlay(event:MouseEvent):void { gotoAndPlay("10"); } //----------------------------------- 【添付図】↓では 別レイヤーで ★MC(ムービークリップ) も動かしてみていまが その ★MC の方の動きは止まらないので タイムラインの再生が止まったのではなく ご質問で書かれていらしゃる通り 「test」のモーショントゥイーンが止まったことがわかります。 クラシックトゥイーンでも同じことをしてみましたが モーショントゥイーンと同じく「test」の動きが止まりました。 ==================== しかしですね,思うのですが,,, モーショントゥイーン(またはクラシックトゥイーン)というのは Flashオーサリングソフト内でのプロパティの連続変化補完機能ですよ。 ※ Flashオーサリングソフト=Flash CS3 や CS5.5 など ですから 仮にモーショントゥイーンが止まらなかったとしても 普通はモーショントゥイーンの部分で 元のプロパティ(黒色にしていないプロパティ)に戻るとも考えられます。 したがって普通は 「ActionScriptでMCのプロパティを変える」 ということと 「モーショントゥイーンで同じMCのプロパティを変える」 ということを両立させようとは考えないと思います。 ==================== 対処法は簡単で(というか普通は先にこっちを考えますが), 「test」MC の中に 子MC を作って (=「test」MCの中身を全て 子MC 内に入れて) その 子MC を黒色に変えれば良いでしょう。 例えば 「test」MCの中の 子MC に「ko_mc」というインスタンス名を付けた場合, 上に書いたスクリプトの test.transform.colorTransform = color; の行を test.ko_mc.transform.colorTransform = color; に変えれば良いだけです。 ==================== もしくは別の対処法として スクリプトを ActionScript 2.0(1.0) に書き換え, Flash Player 8 用の SWF をパブリッシュする方法もあります。 ActionScript 2.0 に書き換えたスクリプト↓。 //----------------------------------- stop(); btn.onRelease = function():Void { var color = new flash.geom.ColorTransform(); color.rgb = 0; test.transform.colorTransform = color; }; btn2.onRelease = function():Void { gotoAndPlay("10"); }; //----------------------------------- 上のようにすると「test」のモーショントゥイーンは止まりません。 しかしもっともこれは, 上のように色のプロパティを変えたときなど限定です。 例えば次のようにして _xプロパティ(x座標プロパティ)を変えたときには 「test」のモーショントゥイーンは止まります。 //----------------------------------- stop(); btn.onRelease = function():Void { test._x = 0; }; btn2.onRelease = function():Void { gotoAndPlay("10"); }; //----------------------------------- やはり 上で書いた「test」MCの中に 子MC を作る方法のように ActionScript でプロパティを変える対象と モーショントゥイーン でプロパティを変える対象は分けるべきでしょうね。
その他の回答 (1)
- BlurFiltan
- ベストアンサー率91% (1611/1754)
お礼
なるほど!! 非常に分かりやすかったです。 丁寧に教えて頂きありがとうございました。 助かりました。