forked from: forked from: flash on 2010-2-25

by mattypang forked from forked from: flash on 2010-2-25 (diff: 42)
ただ単純にsin波とcos波の波線を2つ同時に表示しようと思ったんですが、
なぜかこんなんになってしまったのです。すみません。どなたかよろしくお願いします。
♥0 | Line 45 | Modified 2011-06-06 02:01:56 | MIT License
play

ActionScript3 source code

/**
 * Copyright mattypang ( http://wonderfl.net/user/mattypang )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/23Jp
 */

package {
import flash.display.Sprite;
import flash.events.Event;
    import flash.text.TextField;
    public class Wave extends Sprite {
        private var angle:Number = 0;
        private var centerY:Number = 200;
        private var range:Number = 50;
        private var xspeed:Number = 1;
        private var yspeed:Number = .05;
        private var xpos:Number;
        private var ypos:Number;
        
        private var xpos2:Number;
        private var ypos2:Number;
        
        public function Wave() {
            init();
        }
        public function init():void{
            xpos = 0;
            xpos2 = 0;
            graphics.lineStyle(1, 0, 1);
            graphics.moveTo(0, centerY);
            addEventListener(Event.ENTER_FRAME, onEnterFrame);    
            ypos = centerY + Math.sin(angle) * range;
            ypos2 = centerY + Math.cos(angle) * range;
            
        }
        public function onEnterFrame(event:Event):void {
            
            
            graphics.moveTo(xpos,ypos);//描画の開始地点を旧xpos,ypos地点に移動
            xpos += xspeed;//xpos,yposを計算
            angle += yspeed;
            ypos = centerY + Math.sin(angle) * range;
            graphics.lineTo(xpos, ypos);//新xpos,yposへラインを描写
            graphics.moveTo(xpos2,ypos2);//描画の開始地点を旧xpos2,ypos2地点に移動
            xpos2 += xspeed;
            angle += yspeed;
            ypos2 = centerY + Math.cos(angle) * range;
            graphics.lineTo(xpos2, ypos2);
            
            
                    
            
            if(xpos > stage.stageWidth){
                removeEventListener(Event.ENTER_FRAME, onEnterFrame);
                addEventListener(Event.ADDED_TO_STAGE,function(e:Event):void{if("autoSize" in e.target){e.target.autoSize="left";}},true);
                TextField(addChild(new TextField)).text = "描画終了";
            }
            
            
        }
       
    }
}