In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

Tweensyでぶるぶる震える

Tweensyで出来るだけ簡単に位置をぶるぶる振動させる実験
* 上は失敗作、下はそれっぽいの
Get Adobe Flash player
by pecoco 03 Mar 2009
/*
 * Tweensyで出来るだけ簡単に位置をぶるぶる振動させる実験
 * 上は失敗作、下はそれっぽいの
 */
package
{
    import flash.display.*;
    import com.flashdynamix.motion.*;
    
    [SWF(width="465", height="465", backgroundColor="#000000", frameRate="30")]
    public class ShakeTweensy extends Sprite
    {
        public function ShakeTweensy()
        {
            // 玉を配置
            var ball01:Sprite = new Sprite();
            var ball02:Sprite = new Sprite();
            setBall( ball01, this.stage.stageWidth/2, 120 );
            setBall( ball02, this.stage.stageWidth/2, 240 );
            
            //----------------------------------    
            //  ボールがプルプル震えるのを作る
            //----------------------------------
	    
            // (上)TweensyTimelineのrepeatと、相対値をランダムに取る方法を使ってみる
            // コーテーションで囲って、カンマで区切るとその範囲でランダムな数値分、相対移動
            var tween:TweensyTimeline = Tweensy.to( ball01, { x:'-7,7', y:'-7,7' }, 0.05 );
            tween.repeatType = TweensyTimeline.REPLAY;
			
            // 【結果】ランダムな値を取るのは最初だけ(毎回取ってくれない)なので、同じ動作を繰り返す。			
            
            
            //--------------------------------------------
            // (下)ランダムに動くのをTweensySequenceにまとめて、それを繰り返す
            var shakeNum:uint = 50;	// 1ターンに震える回数
            var sequence:TweensySequence = new TweensySequence();
            for ( var i:uint = 0; i < shakeNum - 1; i++ )
            {
                sequence.push( ball02, { x:'-7,7', y:'-7,7' }, 0.02 );
            }
            sequence.repeatType = TweensyTimeline.REPLAY;
            sequence.start();
      	
            // 【結果】なんとなくランダムに振動している感じに見える
        }
        
        // 玉を描いて配置するだけのん
        private function setBall( target:Sprite, xx:Number, yy:Number ):void
        {
            var g:Graphics = target.graphics;
            g.beginFill( 0xFF0000, 1 );
            g.drawCircle( 0, 0, 20 );
            g.endFill();
            
            target.x = xx;
            target.y = yy;
            this.addChild( target );
        }
    }
}