2009-04-09 11 views
0

どのように私は次のようなフラッシュ何かにActionScriptを使用してアニメーションに行くか?:のFlashのActionScript 3&オシオブジェクトアルファアニメーション

私は、ランダムなアルファ値を持つ私のステージに散らばっいくつかの正方形を持っています。ムービーが読み込まれると、現在のアルファ値が0になってから1にスムーズにアニメーションし、無期限にサイクルを繰り返します。

ボーナスとして、サイクルを続ける前にアルファ= 1で一定時間、各四角形を停止させたいと思います。

私はオブジェクトとして私の広場(ImageTile)を設定する必要がありますオンラインチュートリアルから収集した:

package { 

    import flash.display.*; 
    import flash.events.*; 

    public class ImageTile extends MovieClip { 

     var tileAlpha = this.alpha; 

     public function ImageTile() { 
      // construct here 
      this.addEventListener(Event.ENTER_FRAME, AnimateTile); 
     } 

     function AnimateTile(e:Event) { 
      // animation to go here 
     } 

    } 

} 

...しかし、私は何をしたいのための数学は私をエスケープします。どんな助けでも大歓迎です!

答えて

0

わかりましたので、私は私は2つのタイマーを使用したかったおおまかかを把握するために管理:

package { 

import flash.display.MovieClip; 
import flash.events.*; 
import gs.TweenLite; 
import fl.motion.easing.*; 
import flash.utils.Timer; 

public class ImageTile extends MovieClip {  

    public function ImageTile() { 
     var atimer:Timer = new Timer(Math.floor(Math.random()*20*1000),1); 
     atimer.addEventListener(TimerEvent.TIMER, initSquares); 
     atimer.start(); 
    } 

    function initSquares(e:Event) { 
     //trace("should be 15 of these, no more!"); 
     var timer:Timer = new Timer(10000); 
     timer.addEventListener(TimerEvent.TIMER, fade); 
     timer.start(); 
    } 

    function fade(e:Event) { 
     TweenLite.to(this, 2, {alpha:Math.random()}); 
    } 

} 

} 

は基本的に、私の主な要件は、各正方形が間に一定の間隔でフェードアニメーションを行うということでした、彼らはすべて同じ間隔でそれをしないと言います。私はこれができるほどきれいではないと確信しているので、どのような再要因も認められるでしょう。

私は、私のフェードのためにTweenLiteライブラリを使用していることにも気付くでしょう。

1

DissolveエフェクトまたはFade(どちらもサンプルの末尾に&コードが付いています)。これらのエフェクトが順番に再生されるようにしたいと思います(ActionScriptでコードを記述する必要はないかもしれません)。次に、アルファ= 1になるようにするには、イベントをエフェクトに追加し、そのアルファ値をチェックし、遅延を設定するか、アニメーションを一時的に一時停止します。アルファ値をアニメーション化するだけの簡単なテストを実行したところ、うまくいくようです。

effectを無期限に再生するにはrepeatCountを0に設定し、最終的なアルファ値になるようにrepeatDelayを設定します(追加のイベントハンドラを追加する必要はありません)。

var eff : Dissolve = new Dissolve(); 
eff.alphaFrom = ...; 
eff.alphaTo = 0; 
// set repeatCount & repeatDelay if necessary 
eff.play([list of targets]); 
+0

引用した2つのライブビューはFlex 3 AS3用です。 Flash CS4 AS3とまったく同じですか? – neezer

+0

AS3は両方で同じだと思いますが、一部の機能が制限されている可能性があります(AIRとFlashの場合のように)。 AS3のほとんどのドキュメントを見てみると、Flex3 AS3を指しています。それを与えて、私に知らせてみてください。 – nevets1219

0

おそらくタイマーを取り除くことはできますが、正直言ってそれをあまり変えないでしょう。

import fl.motion.easing.*; 

import flash.display.MovieClip; 
import flash.events.*; 
import flash.utils.Timer; 
import flash.utils.setInterval; 
import flash.utils.setTimeout; 

public class ImageTile extends MovieClip {    

    public function ImageTile() 
    { 
     flash.utils.setTimeout(initSquares, Math.floor(Math.random()*20*1000); 
    } 

    function initSquares() 
    { 
      flash.utils.setInterval(fade, 10000); 
    } 

    function fade() 
    { 
      TweenLite.to(this, 2, {alpha:Math.random()}); 
    } 

} 
関連する問題