Actionscript 3 参照as3中同一对象的其他属性获取dataobject的属性
如何在输入帧侦听器“animatesmoke”中获取“smokeobject”的速度属性,该侦听器参照movieclip“whitesmoke”,这也是“smokeobject”的一个属性 这是我的密码Actionscript 3 参照as3中同一对象的其他属性获取dataobject的属性,actionscript-3,flash,events,data-objects,Actionscript 3,Flash,Events,Data Objects,如何在输入帧侦听器“animatesmoke”中获取“smokeobject”的速度属性,该侦听器参照movieclip“whitesmoke”,这也是“smokeobject”的一个属性 这是我的密码 public function createRocketSmoke() { var smokeObject:Object = new Object(); smokeObject.whiteSmoke = new Bitmap(new WhiteSmok
public function createRocketSmoke()
{
var smokeObject:Object = new Object();
smokeObject.whiteSmoke = new Bitmap(new WhiteSmoke(0,0));
smokeObject.whiteSmoke.x=targetX + Math.random()*4-8;
smokeObject.whiteSmoke.y=targetY + Math.random()*4-8;
smokeContainer=new MovieClip();
smokeContainer.addChild(smokeObject.whiteSmoke);
addChild(smokeContainer);
var randomScale = Math.random();
if(randomScale<.5)
randomScale = randomScale+.5;
smokeObject.whiteSmoke.scaleX= randomScale;
smokeObject.whiteSmoke.scaleY= randomScale;
smokeObject.speed = Math.random();
smokeObject.whiteSmoke.rotation = Math.random()*360;
smokeObject.whiteSmoke.addEventListener(Event.ENTER_FRAME,animateSmoke);
}
public function animateSmoke(event:Event):void
{
//here i want the speed property of the 'smokeObject'
}
公共函数createRocketSmoke()
{
var smokeObject:Object=新对象();
smokeObject.WhiteMoke=新位图(新的WhiteMoke(0,0));
smokeObject.whiteSmoke.x=targetX+Math.random()*4-8;
smokeObject.whiteSmoke.y=targetY+Math.random()*4-8;
smokeContainer=新电影剪辑();
smokeContainer.addChild(smokeObject.whiteSmoke);
addChild(烟盒);
var randomScale=Math.random();
如果(randomScale你想做的事情很快就会变得非常混乱
我建议为Smoke创建一个类,并为它提供一个update()
函数:
public class Smoke
{
// Properties.
private var _whiteSmoke:Bitmap;
private var _speed:Number = 0;
// Constructor.
public function Smoke(targetX:Number = 0, targetY:Number = 0)
{
// Prepare graphics.
_whiteSmoke = new Bitmap(new WhiteSmoke());
_whiteSmoke.x = targetX + Math.random()*4-8;
_whiteSmoke. y = targetY + Math.random()*4-8;
_whiteSmoke.rotation = Math.random()*360;
_whiteSmoke.scaleX = whiteSmoke.scaleY = 0.5 Math.random() * 0.5;
// Apply random speed.
_speed = Math.random();
}
// Update this smoke.
public function update():void
{
//
// Update this smoke here.
//
}
// The graphics for this smoke.
public function get whiteSmoke():Bitmap
{
return _whiteSmoke;
}
// The speed for this smoke.
public function get speed():Number
{
return _speed;
}
}
这将使您能够更轻松地使用阵列和循环更新烟雾对象,以更新每个烟雾对象:
// This array will hold all your Smoke objects.
var allSmoke:Array = [];
// Create some Smoke.
var smoke1:Smoke = new Smoke(10, 10);
var smoke2:Smoke = new Smoke(10, 10);
// Add it to the array.
allSmoke.push(smoke1);
allSmoke.push(smoke2);
// Prepare game loop.
addEventListener(Event.ENTER_FRAME, update);
function update(e:Event):void
{
// Loop through smoke objects and update them.
for each(var i:Smoke in allSmoke)
{
i.update();
}
}