ใน
ตัวอย่างนี้เราจะเพิ่มความซับซ้อนให้กับตัวแปรโดยกำหนดให้มีการเปลี่ยนแปลง
ค่า x และ y ที่เป็นอิสระต่อกัน เพื่อให้ได้รูปแบบการเคลื่อนที่แบบสุ่ม
และเราจะเพิ่มตัวการ์ตูนเข้าไปเพื่อให้เห็นถึงการประยุกต์ใช้งาน
package{
import flash.display.Sprite;
import flash.display.Loader;
import flash.display.BitmapData;
import flash.display.Graphics;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.utils.Timer;
import flash.net.URLRequest;
public class RandomMoving extends Sprite{
private var _xRadius:Number = 100; /**** ****/
private var _xAngle:Number=10; /**** degree ****/
private var _yAngle:Number=0;
private var _yRadius:Number=100;
private var _xSpeed:Number=0.15;
private var _ySpeed:Number=0.5;
private var _imgLoc:String='http://www.n3amedia.info/bee_icon.png';
public function RandomMoving(){
this.loadImg();
this.setPosition(0,400);
var timer:Timer = new Timer(50,0);
timer.addEventListener("timer",moveMe);
_yAngle=_yAngle*Math.PI/180;
_xAngle=_xAngle*Math.PI/180;
timer.start();
}
public function setPosition(x:Number,y:Number):void{
this.x=x;
this.y=y;
}
private function loadImg():void{
var loader:Loader = new Loader();
loader.addEventListener(Event.COMPLETE,onLoadComplete);
var req:URLRequest=new URLRequest(_imgLoc);
loader.load(req);
addChild(loader);
}
private function onLoadComplete(e:Event):void{
var l:Loader = e.target as Loader;
var bd:BitmapData=new BitmapData(l.contentLoaderInfo.width,l.contentLoaderInfo.height);
bd.draw(l);
this.graphics.beginBitmapFill(bd,null,true);
this.graphics.endFill();
}
private function drawMe():void{
/**** to draw a red circle with 50 pixels radias ****/
this.graphics.beginFill(0xFF0000,200);
this.graphics.drawCircle(0,0,10);
this.graphics.endFill();
}
private function moveMe(e:TimerEvent):void{
this.x=200+Math.sin(_xAngle)*_xRadius;
this.y=200+Math.cos(_yAngle)*_yRadius;
this._xAngle+=_xSpeed;
this._yAngle+=_ySpeed;
}
}
}
ส่วนของคำสั่งทีทำให้เกิดการเคลื่อนแบบสุ่มคือ
this.x=200+Math.sin(_xAngle)*_xRadius;
this.y=200+Math.cos(_yAngle)*_yRadius;
this._xAngle+=_xSpeed;
this._yAngle+=_ySpeed;
Demo :
package{
import flash.display.Sprite;
import flash.display.Loader;
import flash.display.BitmapData;
import flash.display.Graphics;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.utils.Timer;
import flash.net.URLRequest;
public class RandomMoving extends Sprite{
private var _xRadius:Number = 100; /**** ****/
private var _xAngle:Number=10; /**** degree ****/
private var _yAngle:Number=0;
private var _yRadius:Number=100;
private var _xSpeed:Number=0.15;
private var _ySpeed:Number=0.5;
private var _imgLoc:String='http://www.n3amedia.info/bee_icon.png';
public function RandomMoving(){
this.loadImg();
this.setPosition(0,400);
var timer:Timer = new Timer(50,0);
timer.addEventListener("timer",moveMe);
_yAngle=_yAngle*Math.PI/180;
_xAngle=_xAngle*Math.PI/180;
timer.start();
}
public function setPosition(x:Number,y:Number):void{
this.x=x;
this.y=y;
}
private function loadImg():void{
var loader:Loader = new Loader();
loader.addEventListener(Event.COMPLETE,onLoadComplete);
var req:URLRequest=new URLRequest(_imgLoc);
loader.load(req);
addChild(loader);
}
private function onLoadComplete(e:Event):void{
var l:Loader = e.target as Loader;
var bd:BitmapData=new BitmapData(l.contentLoaderInfo.width,l.contentLoaderInfo.height);
bd.draw(l);
this.graphics.beginBitmapFill(bd,null,true);
this.graphics.endFill();
}
private function drawMe():void{
/**** to draw a red circle with 50 pixels radias ****/
this.graphics.beginFill(0xFF0000,200);
this.graphics.drawCircle(0,0,10);
this.graphics.endFill();
}
private function moveMe(e:TimerEvent):void{
this.x=200+Math.sin(_xAngle)*_xRadius;
this.y=200+Math.cos(_yAngle)*_yRadius;
this._xAngle+=_xSpeed;
this._yAngle+=_ySpeed;
}
}
}
ส่วนของคำสั่งทีทำให้เกิดการเคลื่อนแบบสุ่มคือ
this.x=200+Math.sin(_xAngle)*_xRadius;
this.y=200+Math.cos(_yAngle)*_yRadius;
this._xAngle+=_xSpeed;
this._yAngle+=_ySpeed;
Demo :
ความคิดเห็น
แสดงความคิดเห็น