实时更改对象的属性

时间:2011-08-29 01:34:04

标签: actionscript-3

这似乎是一个天真的问题,但我意识到我不知道如何实现这个目标。

我有一个Sprite对象,我调用了三个方法,

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

问题在于我也叫

addEventListeneter(Event.ENTER_FRAME, myfunc);

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

我更新了myObject的x坐标。

假设我有一个按钮或者我在几秒钟之后发送一个新事件,重要的是如何在运行屏幕时如何更改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 个答案:

答案 0 :(得分:1)

您可以清除旧Sprite中的图形并使用新颜色绘制新的rect:

  // 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();
  }

精灵将使用新颜色继续动画。