• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Flash MCのモーショントウィーン)

Flash MCのモーショントウィーンの問題

このQ&Aのポイント
  • Flash MCのモーショントウィーンにおける問題について
  • Flash CS5 ActionScript 3.0で制作しているムービークリップに色変更とモーショントウィーンのスクリプトを書いていますが、ボタンの順番によってモーショントウィーンがうまく動きません。
  • ボタン1を押した後にボタン2を押すとモーショントウィーンが動かない問題が発生しています。ボタン2を押した後にボタン1を押す場合は正常に動作しますが、この順番に制約があるため改善をお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

書かれていらっしゃるスクリプトのままでは モーショントゥイーンの前に, エラーの大嵐でパブリッシュ不可能ですよ。。。 スクリプトを次のように修正して 下の【添付図】↓のようなものを作ったところ 確かに,「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 でプロパティを変える対象と モーショントゥイーン でプロパティを変える対象は分けるべきでしょうね。

この投稿のマルチメディアは削除されているためご覧いただけません。
tetujapan
質問者

お礼

なるほど!! 非常に分かりやすかったです。 丁寧に教えて頂きありがとうございました。 助かりました。

その他の回答 (1)

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.2

#1です。 すみません。 図を貼り間違えていましたので再添付します。

tetujapan
質問者

お礼

ありがとうございました。

関連するQ&A