ActionScript3: for文でのTween割り当てについて

このQ&Aのポイント
  • AS3でfor文を使用して複数のボタンにTweenを割り当てる方法を試していますが、最後のボタンしか動作しません。
  • ボタンをマウスオーバーするとTweenアニメーションで動き、マウスアウトすると元の位置に戻る機能を持ったボタンを作成したいです。
  • Tweenはfor文で割り当てられないのでしょうか?詳しい方、ご教示ください。
回答を見る
  • ベストアンサー

ActionScript3:Tweenをfor文で割り当てられないのか

ActionScript3:Tweenをfor文で割り当てられないのか? AS3でaddChildでMovieClipを複数置いてTweenをfor文で割り当てるということをやろうとしているのですが、どうしても順番で最後のMovieClipしか動きません。 以下のようにコーディングしてボタンを5個を並べてマウスオーバーするとTweenアニメで動き、またアウトするとTweenアニメで元の位置に戻るというものを作りたいのですが、5番目のボタンしか動きません。Tweenはfor文で割り当てられないのでしょうか? //クラスのインポート import fl.transitions.Tween; import fl.transitions.TweenEvent; import fl.transitions.easing.*; //ボタン配置 for (var i:uint=1; i<6; i++) { var BtnName:String="btn0"+i; var BtnNumber:Class=getDefinitionByName(BtnName) as Class; var Btn:MovieClip = new BtnNumber(); addChild(Btn); Btn.x=10+Btn.width/2+(Btn.width+10)*(i-1); Btn.y=46+Btn.height/2; Btn.buttonMode=true; Btn.id=i; ←idというプロパティを付けてもダメでした Btn.addEventListener(MouseEvent.ROLL_OVER, RollOverEv); Btn.addEventListener(MouseEvent.ROLL_OUT, RollOutEv); function RollOverEv(eventObject:MouseEvent):void { BtnTween01=new Tween(Btn,"y",None.easeNone,Bottom,Top,MovSpd,true); ↑このBtnがi=5としか認識してないようです。 if (BtnTween02.isPlaying) { BtnTween01=new Tween(Btn,"y",None.easeNone,BtnTween02.position,Top,MovSpd,true); ↑このBtnがi=5としか認識してないようです。 } } function RollOutEv(eventObject:MouseEvent):void { BtnTween02=new Tween(Btn,"y",None.easeNone,Top,Bottom,MovSpd,true); ↑このBtnがi=5としか認識してないようです。 if (BtnTween01.isPlaying) { BtnTween02=new Tween(Btn,"y",None.easeNone,BtnTween01.position,Bottom,MovSpd,true); ↑このBtnがi=5としか認識してないようです。 } } } //変数色々設定 var BtnTween01:Tween; var BtnTween02:Tween; var Top:uint=Btn.height/2+5; var Bottom:uint=Btn.height/2+46; var MovSpd:Number=0.2; ■環境:ActionScript3、Flashサイズ:w;280xh:100

  • Flash
  • 回答数5
  • ありがとう数4

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

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

#4(#2) です。 > 親のムービークリップbtn01に幅、高さを付けるためなのですか? 違います。 親ムービークリップ内に何かを用意すると それが親ムービークリップであるということになるからです。 「田中君の敷地内の家具」 は 「田中君の敷地」=「田中君の敷地内にあるもの」 でしょう? 「田中君の敷地内のハナレ(別棟)」 も 「田中君の敷地」=「田中君の家の敷地内にあるもの」 でしょう? 「田中君が所有する別荘」 も 「田中君の敷地」=「田中君の敷地内にあるもの」 でしょう? ↓上記mp 田中君の敷地 を ムービークリップ に変換します↓ 「ムービークリップ内のインスタンス」 は 「ムービークリップ」=「ムービークリップ自体にあるもの」 でしょう? 「ムービークリップ内の別インスタンス」 も 「ムービークリップ内」=「ムービークリップ自体にあるもの」でしょう? 「ムービークリップ内にある他の物」も 「ムービークリップ」=「ムービークリップ内自体にあるもの」でしょう? > 透明なシンボルは必要ないような気がするのですが? 透明なシンボルではありません。 また 透明なインスタンス でもありません。 別に「透明なインスタンス(シンボル?)」であってもかまいませんが, 特に インスタンス(シンボル?) である必要はありません。 「何か」です。 「何か」ですから「透明な塗り」で十分です。 「ココは田中君の敷地ですよ」=「ここはムービークリップ内ですよ」 ということを表すものです。

その他の回答 (4)

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

#2です。 #2の最後を繰り返しますよ。 > ※ボタンMC(ムービークリップ)を直接動かしているので   ~略~ > 親ムービークリップにロールオーバーしたときに > 子ボタンMCを Tween させる。 ですよ。 透明な塗りをムービークリップ内に作成してもそれごと直接動かしたら意味がないでしょう? それだと「ボタンMC(ムービークリップ)を直接動かしている」状態そのままで何の進化もしてません。 例えば, シンボル「btn01」内のボタンの絵をムービークリップに変換して 例えば「mc」というインスタンス名を付けます。 その「mc」の下のレイヤーにでも透明な塗りを描けば良いのです。 そして 「btn01」のインスタンス自体を動かすのではなく 「btn01」内の「mc」を動かすのです。 (他の 「btn0○」 も同じく。) ---------------- //クラスのインポート import fl.transitions.Tween; import fl.transitions.TweenEvent; import fl.transitions.easing.*; //変数色々設定 var Top:int=-41; var Bottom:uint=0; var MovSpd:Number=0.2; var BtnTween01:Tween; var BtnTween02:Tween; //ボタン配置 for (var i:uint=1; i<6; i++) { var BtnName:String="btn0"+i; var BtnNumber:Class=getDefinitionByName(BtnName) as Class; var Btn:MovieClip = new BtnNumber(); addChild(Btn); Btn.x=10+Btn.width/2+(Btn.width+10)*(i-1); Btn.y=46+Btn.height/2; Btn.buttonMode=true; Btn.addEventListener(MouseEvent.ROLL_OVER, RollOverEv); Btn.addEventListener(MouseEvent.ROLL_OUT, RollOutEv); } function RollOverEv(eventObject:MouseEvent):void { BtnTween01=new Tween(eventObject.target.mc,"y",None.easeNone,Bottom,Top,MovSpd,true); if (BtnTween02!=null&&BtnTween02.isPlaying) { BtnTween01=new Tween(eventObject.target.mc,"y",None.easeNone,BtnTween02.position,Top,MovSpd,true); } } function RollOutEv(eventObject:MouseEvent):void { BtnTween02=new Tween(eventObject.target.mc,"y",None.easeNone,Top,Bottom,MovSpd,true); if (BtnTween01.isPlaying) { BtnTween02=new Tween(eventObject.target.mc,"y",None.easeNone,BtnTween01.position,Bottom,MovSpd,true); } } ---------------- 変更箇所は  //変数色々設定 の数値と BtnTween01=new Tween(eventObject.target.mc,"y",None.easeNone,Bottom,Top,MovSpd,true); などの eventObject.target.mc の部分です。 良い副産物的効果として,  //変数色々設定 を上にもって行くことが可能になりました。 相対座標ですから,呼びだした Btn の位置をうかがう必要はないということです。  

yoyoyoiyoi
質問者

補足

ボタンムービークリップの下に透明な塗りを描くのは、親のムービークリップbtn01に幅、高さを付けるためなのですか?btn01にマウスオーバーして中にあるボタンムービークリップを動かすということでは、透明なシンボルは必要ないような気がするのですが?

回答No.3

#1です 言ってる事はあってたけど 解決してませんでした、すいません 結局おなじの参照する結果になってました あと、おせっかいですが Tweenクラスは複数のTweenで ターゲットがだぶってても なんも解決処理してくれません しかもターゲットがだぶってる所為で 変な動作してくれることがあります なんで同じBtnに対しては 行き帰りで二つに分けず Tweenは一つにして continueTo()とかで繋いだ方が 安定するかもしれません ロールオーバー、アウトの度に 新たにインスタンス作っちゃうのも なんかいらないゴミが増えそうです //クラスのインポート import fl.transitions.Tween; import fl.transitions.TweenEvent; import fl.transitions.easing.*; //先に変数作っておく var MovSpd:Number=0.2; //ボタン配置 for (var i:uint=1; i<6; i++) { var BtnName:String="btn0"+i; var BtnNumber:Class=getDefinitionByName(BtnName) as Class; var Btn:MovieClip = new BtnNumber(); Btn.x=10+Btn.width/2+(Btn.width+10)*(i-1); Btn.y=46+Btn.height/2; Btn.buttonMode=true; addChild(Btn) Btn.tween=makeTween(Btn) Btn.addEventListener(MouseEvent.ROLL_OVER, RollOverEv); Btn.addEventListener(MouseEvent.ROLL_OUT, RollOutEv); function RollOverEv(eventObject:MouseEvent):void { var tgt=eventObject.target //TweenをひとつにまとめてcontinueToを使えば //positionを取得したりしなくてもいいし楽です tgt.tween.continueTo(tgt.height/2+5,MovSpd) } function RollOutEv(eventObject:MouseEvent):void { var tgt=eventObject.target tgt.tween.continueTo(tgt.height/2+46,MovSpd) } } //Tweenを関数で作らせてワンクッッション置く事で //ターゲットの参照が変わってしまうのを避けます function makeTween(tgt:MovieClip):Tween{ //Tween作る時点ではターゲットとプロパティ、初期値 //ミリ秒使うかとだけ設定されてたらOK var rtn=new Tween(tgt,"y",None.easeNone,tgt.y,tgt.y,0,true); rtn.stop() return rtn }

yoyoyoiyoi
質問者

補足

>あと、おせっかいですが いえいえ、そういう指摘はどんどんしてほしいです。continueTo()とは思いつきませんでした。 アニメーション中に処理を実行しない場合はcontinueTo()とかが有効ですね。 Btn.tween=makeTween(Btn) function makeTween(tgt:MovieClip):Tween{ var rtn=new Tween(tgt,"y",None.easeNone,tgt.y,tgt.y,0,true); rtn.stop() return rtn } こうやって関数でTween作れたんですね、プロパティに.Tweenとか戻り値型にもTweenってあたんですね。自分の持っている http://www.amazon.co.jp/ActionScript-3-0%E8%BE%9E%E5%85%B8-FlashPlayer10-9%E5%AF%BE%E5%BF%9C-%E3%81%AE%E3%82%8A%E3%82%86%E3%81%8D/dp/4798119016/ref=sr_1_14?ie=UTF8&s=books&qid=1266313639&sr=1-14 には載っていませんね。他にも戻り値型にFunctionがあったりと戻り値型にはけっこう種類があるんですか?

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

こんな感じで良いのではないでしょうか? ---------------- //クラスのインポート import fl.transitions.Tween; import fl.transitions.TweenEvent; import fl.transitions.easing.*; var BtnTween01:Tween; var BtnTween02:Tween; //ボタン配置 for (var i:uint=1; i<6; i++) { var BtnName:String="btn0"+i; var BtnNumber:Class=getDefinitionByName(BtnName) as Class; var Btn:MovieClip = new BtnNumber(); addChild(Btn); Btn.x=10+Btn.width/2+(Btn.width+10)*(i-1); Btn.y=46+Btn.height/2; Btn.buttonMode=true; Btn.addEventListener(MouseEvent.ROLL_OVER, RollOverEv); Btn.addEventListener(MouseEvent.ROLL_OUT, RollOutEv); } function RollOverEv(eventObject:MouseEvent):void { BtnTween01=new Tween(eventObject.target,"y",None.easeNone,Bottom,Top,MovSpd,true); if (BtnTween02 != null && BtnTween02.isPlaying) { BtnTween01=new Tween(eventObject.target,"y",None.easeNone,BtnTween02.position,Top,MovSpd,true); } } function RollOutEv(eventObject:MouseEvent):void { BtnTween02=new Tween(eventObject.target,"y",None.easeNone,Top,Bottom,MovSpd,true); if (BtnTween01.isPlaying) { BtnTween02=new Tween(eventObject.target,"y",None.easeNone,BtnTween01.position,Bottom,MovSpd,true); } } //変数色々設定 var Top:uint=Btn.height/2+5; var Bottom:uint=Btn.height/2+46; var MovSpd:Number=0.2; ---------------- 全体的に配置を変えていますが,それはあまり大したことはありません。 重要な変更点は BtnTween01=new Tween(Btn,"y",None.easeNone,Bottom,Top,MovSpd,true);  ↓ BtnTween01=new Tween(eventObject.target,"y",None.easeNone,Bottom,Top,MovSpd,true); です。 いくつかある同様の箇所の Btn も eventObject.target に変更しています。 書かれていらっしゃるスクリプトだと 変数 Btn はコロコロ変わるのですから 最終的に Btn に代入されたものが Btn の参照するインスタンスになります。 イベントリスナーで実行される関数には引数が必ず必要ですよね。 上のように変更して考えれば,その存在意味がわかると思います。 ※ボタンMC(ムービークリップ)を直接動かしているので ロールオーバーしてもすぐにロールアウトするため動きが変になります。 ムービークリップ内に透明な塗りのヒットエリアでも用意した親MCを用意し その中に子ボタンMCを入れておいて 親ムービークリップにロールオーバーしたときに子ボタンMCを Tween させる。 などの工夫をした方が良いかもしれません(あくまでも工夫例の1つです)。  

yoyoyoiyoi
質問者

補足

なるほどeventObject.targetを使えばよいのですね、でも確かにボタンの動きが上下に忙しなく動いて狙い通りではないですね。「ムービークリップ内に透明な塗りのヒットエリアでも用意した親MCを用意しその中に子ボタンMCを入れておいて」をやってみました。 for (var i:uint=1; i<6; i++) { var Par:MovieClip = new ParBtn(); addChild(Par);←-----------------親MC var BtnName:String="btn0"+i; var BtnNumber:Class=getDefinitionByName(BtnName) as Class; var Btn:MovieClip = new BtnNumber(); Par.addChild(Btn); var Area:MovieClip = new BtnArea(); Par.addChild(Area);←------------透明MC Par.x=10+Area.width/2+(Area.width+10)*(i-1); Par.y=46+Area.height/2; Area.buttonMode=true; Area.addEventListener(MouseEvent.ROLL_OVER, RollOverEv); Area.addEventListener(MouseEvent.ROLL_OUT, RollOutEv); 以下続く..で、 new Tween(eventObject.target,"y",None.easeNone,Bottom,Top,MovSpd,true); ↑このターゲットをボタンにしたいのですがeventObject.targetだと透明MCが動いてしまいます。このような場合はどうターゲットを指定してあげればよいでしょう?

回答No.1

多分Tweenのターゲットは変数を参照って形になってて 変数の値となってるオブジェクトまでたどってないのでしょうね とすれば、後から参照が変更されるような 変数をターゲットにしないようにすりゃいいわけですよ for (var i:uint=1; i<6; i++) { var BtnName:String="btn0"+i; var BtnNumber:Class=getDefinitionByName(BtnName) as Class; var Btn:MovieClip = new BtnNumber(); addChild(Btn); ↓ var BtnList=new Array() for (var i:uint=1; i<6; i++) { var BtnName:String="btn0"+i; var BtnNumber:Class=getDefinitionByName(BtnName) as Class; var Btn:MovieClip = new BtnNumber(); BtnList.push(addChild(Btn)); BtnTween01=new Tween(Btn,"y",None.easeNone,BtnTween02.position,Top,MovSpd,true); ↓ BtnTween01=new Tween(BtnList[i],"y",None.easeNone,BtnTween02.position,Top,MovSpd,true); 後のTweenコンストラクタも同じようなカンジで

関連するQ&A

  • for文を使ったボタン

    for文を使ったボタン ボタンが2つあり、そのボタンをロールオーバー、ロールアウトでそれぞれ違うmcを動かしたいのですが、うまくいきません。ボタンを「maru1、maru2」として動かしたいmcを「btn1、btn2」とインスタンス名をつけて以下のスクリプトを書きました。 maru1.addEventListener(MouseEvent.ROLL_OVER,onMouse1); maru1.addEventListener(MouseEvent.ROLL_OUT,outMouse1); maru1.buttonMode = true; maru2.addEventListener(MouseEvent.ROLL_OVER,onMouse2); maru2.addEventListener(MouseEvent.ROLL_OUT,outMouse2); maru2.buttonMode = true; function onMouse1(e:MouseEvent):void{ mc_tween = new Tween(btn1, "scaleX", Elastic.easeOut, 0.7, 1, 1, true); mc_tween.start(); } function outMouse1(e:MouseEvent):void{ mc_tween = new Tween(btn1, "scaleX", Elastic.easeOut, 1, 0.7, 1, true); mc_tween.start(); } function onMouse2(e:MouseEvent):void{ mc_tween = new Tween(btn2, "scaleX", Elastic.easeOut, 0.7, 1, 1, true); mc_tween.start(); } function outMouse2(e:MouseEvent):void{ mc_tween = new Tween(btn2, "scaleX", Elastic.easeOut, 1, 0.7, 1, true); mc_tween.start(); } これでも動くのですが、ボタンが沢山あった場合にfor文を使ってできないかと考え、ttp://www.oro.co.jp/web/creator/flash/actionscript/soft-button.htmlを参考に var mc_tween:Tween; //イベント登録 for(var i:int = 1; i < 3; i++){ this["maru"+i].addEventListener(MouseEvent.ROLL_OVER, rollOverEvent); this["maru"+i].addEventListener(MouseEvent.ROLL_OUT, rollOutEvent); this["maru"+i].buttonMode = true; } function rollOverEvent(event:Event):void{ var btn:MovieClip = event.target as MovieClip; mc_tween = new Tween(btn, "scaleX", Elastic.easeOut, btn.scaleX, 1.5, 1, true); mc_tween = new Tween(btn, "scaleY", Elastic.easeOut, btn.scaleY, 1.5, 1, true); addChildAt(btn, 5); } function rollOutEvent(event:Event):void{ var btn:MovieClip = event.target as MovieClip; mc_tween = new Tween(btn, "scaleX", Elastic.easeOut, btn.scaleX, 1, 1, true); mc_tween = new Tween(btn, "scaleY", Elastic.easeOut, btn.scaleY, 1, 1, true); } と書いたのですが、上手く行きません。<var btn:MovieClip = event.target as MovieClip;>の部分でどのように「btn1、btn2」を参照したらいいのでしょうか。 作業環境はmacOSX flashCS5 actionscript3です。よろしくお願い致します。

    • ベストアンサー
    • Flash
  • for文でまとめる

    FLASH CS3 アクション 2.0 Tweenを用いてイーズアウトの5種類をballを使って表現しようとしています。 ステージにball1からball5を置き、ボタンbt1を押すと右方向に移動させます。 //Tweenクラスを使用できるようにインポート import mx.transitions.Tween; import mx.transitions.easing.*; bt1.onRelease = function() { //インスタンス「ball」の動きをTweenクラスを使って制御 var myTween1:Tween = new Tween(ball1, "_x", Regular.easeOut, 39, 400, 2, true); var myTween2:Tween = new Tween(ball2, "_x", Strong.easeOut, 39, 400, 2, true); var myTween3:Tween = new Tween(ball3, "_x", Elastic.easeOut, 39, 400, 2, true); var myTween4:Tween = new Tween(ball4, "_x", Back.easeOut, 39, 400, 2, true); var myTween5:Tween = new Tween(ball5, "_x", Bounce.easeOut, 39, 400, 2, true); }; http://okwave.jp/qa/q7042246.htmlの回答で教えていただきましたfor文を 参考にして書き直しをしてみましたがBounce.easeOutのみ動きますが本来のもの とは異なります。どのように変更すればいいのか教えてください。 //Tweenクラスを使用できるようにインポート import mx.transitions.Tween; import mx.transitions.easing.*; var easeList:Array = new Array(); //イージングの種類 easeList[1] = "Elastic.easeOut"; easeList[2] = "Strong.easeOut"; easeList[3] = "Elastic.easeOut"; easeList[4] = "Back.easeOut"; easeList[5] = "Bounce.easeOut"; bt1.onRelease = function() { for (var i:Number = 1; i<=5; i++) { _root["ball"+i]; for (var i:Number = 1; i<=5; i++) { easeList[i+1]; //インスタンス「ball」の動きをTweenクラスを使って制御 var myTween = new Tween(_root["ball"+i], "_x", easeList[i+1], 39, 400, 2, true); } } };

    • ベストアンサー
    • Flash
  • Tweenを使って元の位置に戻したい

    はじめまして。 制作環境 flashCS3 アクションスクリプト2.0 Tweenクラスを使ってアニメーションを楽しんでいます。 座標100、200に円(直径75のボタン)を配置し、クリックすると座標300、200に拡大移動できます。 ここまでは動作するのですが、再度クリックして元の位置に戻す方法がわかりません。 //クラスのインポート import mx.transitions.Tween; import mx.transitions.easing.*; grobal_btn.onRelease = function() { mc_tween = new Tween(grobal_btn, "_xscale", Elastic.easeOut,grobal_btn._xscale, 150, 1, true); mc_tween = new Tween(grobal_btn, "_x", Elastic.easeOut,grobal_btn._x,300, 4, true);//スタートx座標、移動した後の座標 mc_tween = new Tween(grobal_btn, "_yscale", Elastic.easeOut,grobal_btn._yscale, 150, 1, true); mc_tween = new Tween(grobal_btn, "_y", Elastic.easeOut,grobal_btn._y,100 , 4, true);//スタートy座標、移動した後の座標 }

    • ベストアンサー
    • Flash
  • AS3.0

    ボタン(btn_start)を押したらMC(main1)が動く指定をしたつもりですが ボタンを押すとmain1が消えてしまいます。 間違っている部分がお分かりになる方、宜しくお願い致します。 import fl.transitions.Tween; import fl.transitions.easing.*; var main_uptween:Tween; btn_start.addEventListener(MouseEvent.CLICK,main_start); function main_start(event:MouseEvent):void { main1.addEventListener(Event.ENTER_FRAME,main_up); } function main_up(event:Event):void { main_uptween = new Tween(main1, "y", Bounce.easeOut, 400, 10, 4, true); }

  • AS3 mc0~5をまとめて処理する

    AS3初心者です。 forにてmc0~5をまとめて処理したいのですが、 下記スクリプトで、function内mc0の書き換え方が分かりません。 よろしくお願いします。 ///////////////////////////////////////// import fl.transitions.easing.Regular; import fl.transitions.TweenEvent; var twObj:Tween; for(var i:int=0;i<=5;i++){ this["mc"+i].addEventListener(MouseEvent.ROLL_OVER, hiraku); this["mc"+i].addEventListener(MouseEvent.ROLL_OUT, modoru); } function hiraku(eventObj:MouseEvent):void { //mc0を["mc"+i]としまとめて処理したい twObj=new Tween(mc0,"rotation",Regular.easeInOut,0,30,1,true); } function modoru(eventObj:MouseEvent):void { //mc0を["mc"+i]としまとめて処理したい twObj=new Tween(mc0,"rotation",Regular.easeInOut,30,0,1,true); } //////////////////////////////////////////

    • ベストアンサー
    • Flash
  • tweenクラスを使った明度の調整は可能ですか。

    ずっとチカチカと、ちょうど電灯が着いたり消えたりするような効果をMCにつけたいと思い、以下のスクリプトをフレームに書きました。 import mx.transitions.Tween; import mx.transitions.easing.*; var myTween:Tween = new Tween(ball, "_alpha", None.easeNone, 100, 0, 0.2, true); myTween.onMotionFinished = function() { this.yoyo(); }; これでも良いことは良いんですが・・ alphaではなく明度(brightness?)で調整できないものかと思っています。 しかし、対象のMCのプロパティにbrightness等入力しても反応しません。 これまでに、_x , _xscale , alphaくらいは試してこれたのですが、明度は調整できないのでしょうか。 FlashCS3 AS2.0仕様です。 参考サイトをいくつか見てみましたが、alphaについては例が書いてあるのですが、明度がないような気がします。 どなたかご教授いただけませんでしょうか。 よろしくお願いします。

  • tweenでblurを調整するとき、関係のないMCにまで影響してしまう。

    ステージに2つのMC(インスタンスネームはそれぞれlogo01,logo02)を置き、"logo01に対してのみ"tweenでblurをかけたいと思っています。 ASは以下のように記述しています。 ================================== import flash.filters.BlurFilter; import mx.transitions.Tween; import mx.transitions.easing.*; var myTween:Tween = new Tween(logo01, "blur", None.easeNone, 0, 50, 1, true); myTween.onMotionChanged = function() { logo01._parent.filters = [new BlurFilter(logo01.blur,logo01.blur,1)]; }; ================================== しかし、これでパブリッシュしてみますと関係のないはずのlogo02にまでblurの効果が適用されてしまい、困っています。 今まであまりblurは触れずにやってきたので、ここに来て原因がよくわからずにいます。 どなたか原因及び解決策をご存じの方がいらっしゃいましたらご教授ください。 よろしくお願い致します。 制作環境はFLASH CS3 forWin(AS2.0)です。

    • ベストアンサー
    • Flash
  • Tweenクラス

    下記のTweenクラスで指定したMCを、任意のタイミングで動かしたいのですが 方法はありますでしょうか? ao_1 = new Tween(ao1_mc, "y",Back.easeOut, 100,200, 1, true); ao_2 = new Tween(ao2_mc, "y",Back.easeOut, 100,200, 1, true); ao_3 = new Tween(ao3_mc, "y",Back.easeOut, 100,200, 1, true); ao_4 = new Tween(ao4_mc, "y",Back.easeOut, 100,200, 1, true); ao_5 = new Tween(ao5_mc, "y",Back.easeOut, 100,200, 1, true); 宜しくお願い致します。

  • Tweenで動かないことがある

    for(var i:int=0; i<arr.length; i++){   new Tween(sprite[i], "x", Regular.easeOut, from , to , 0.3, true).start(); } のように配列arrに入っているスプライトを移動させたいのですが、たまに一部のスプライトが動かないことがあります。 動かない時、スプライトは散り散りにはならず、一部がまとまって動きません。 同じiでも時によって動く時と動かない時があります。 グローバルにtweenという配列を作って、Tweenをその要素としても起こることがあります。 どうしてでしょうか?

  • addChildの使い方

    ロールオーバーで下の画像を表示させる:を参考にしています。 http://okwave.jp/qa/q7020788.html ここはアクションスクリプト2.0でしたが、私はFLASH CS3 アクションスクリプト3.0で 作っています。 その回答をもとに100X100のロールオーバー用の画像を16個表示させるために 書きました。ステージは400x400です。 for (var i:Number = 0; i<=15; i++) { if (i != 0) { var my_mc:MC = new MC(); my_mc.x = i%4*100; my_mc.y = Math.floor(i/4)*100; addChild(my_mc); } } 16個で埋め尽くすことはできましたが、my_mcに番号をつけるなどして配列を使って やらなければならないと考えますが方法がわかりません。今は16番目(iが15)しか ロールオーバーしません。 全体のアクションスクリプトを書きます。 import fl.transitions.*; import fl.transitions.easing.*; for (var i:Number = 0; i<=15; i++) { if (i != 0) { var my_mc:MC = new MC(); my_mc.x = i%4*100; my_mc.y = Math.floor(i/4)*100; addChild(my_mc); } } my_mc.addEventListener(MouseEvent.ROLL_OVER,onrollOver); function onrollOver(eventObj:Event):void { //ロールオーバーイベントを受けたインスタンスを取得 var target_mc:MovieClip = MovieClip(eventObj.currentTarget); //そのインスタンスをフェードアウト TransitionManager.start(target_mc, {type:Fade, direction:Transition.OUT, duration:2, easing:None.easeNone}); //そのインスタンスのイベントリスナーを削除 target_mc.removeEventListener(MouseEvent.ROLL_OVER,onrollOver); }

    • ベストアンサー
    • Flash

専門家に質問してみよう