2011-08-29 70 views
2

这似乎是一个幼稚的问题,但我已经意识到我不如何实现这一目标。改变对象的属性实时

我有一个Sprite对象,我叫三种方法,

myObject.graphics.drawRect(params, params params, params); 
myObject.graphics.beginFill(params); 

的问题是,我也叫

addEventListeneter(Event.ENTER_FRAME, myfunc); 

myfunc(e:Event):void 
{ 
myObject.x += 5; 
} 

我更新的x坐标myObject的。

假设我有一个按钮,或者我在几秒钟后分派一个新的事件后,它并没有多么,重要的是我如何更改myObject的颜色,而运行时屏幕。我以为像从屏幕上删除myObject和添加另一个对象,几乎相似,但现在是一个红色的矩形。但是,我将不得不知道自从文件启动以来经过了多少时间,直到按下按钮才能用myObject的速度做一些数学运算以真正知道它必须添加到哪里(在相同的地方当我按下某个按钮时myObject被删除)。

myNewObject.graphics.drawRect(the x coordinate where myObject was removed when I pressed the button so that I remove the old black rectangle and add a generic red rectangle, params params, params); 

myNewObject.graphics.beginFill(new param); 

但是怎么回事?有没有更简单的方法来实现这一点?

谢谢。

回答

1

可以清除旧的雪碧图形,绘制一个矩形新新颜色:

// After the event is dipatched: 
    function eventHandler(event:Event):void 
    { 
     myObject.graphics.clear(); 
     myObject.graphics.beginFill(white); 
     myObject.graphics.drawRect(params, params, params, params); 
     myObject.graphics.endFill(); 
    } 

的精灵将继续与新的颜色动画。