好的,所以我最近一直在尝试正确理解 AS3 中的 OOP。现在我有一个非常简单的场景,我有一个类 Paddle,它绘制一个矩形。在我的文档类中,我创建了 Paddle 类的两个实例,即 paddle1 和 paddle2。
我还为我的 Paddle 类创建了一个属性,我想更改它绘制的矩形的颜色。我希望能够从主类调整这个属性。我知道我可以通过在实例化类时传入属性来做到这一点,但似乎属性会是更好的方法,现在我想知道这是否是正确的思维方式。
主类:
package
{
import flash.display.Sprite;
import flash.events.Event;
public class Engine extends Sprite
{
private var paddle1:Paddle = new Paddle();
private var paddle2:Paddle = new Paddle();
public function Engine()
{
paddle1.x = 30;
paddle1.color = 0xFF00FF;
stage.addChild(paddle1);
paddle2.x = stage.stageWidth - 45;
paddle2.color = 0xFF0000;
stage.addChild(paddle2);
}
}
}
桨类:
package
{
import flash.display.MovieClip;
import flash.display.Shape;
import flash.display.Graphics;
import flash.events.Event;
public class Paddle extends MovieClip
{
public var color:uint = 0xFFFFFF;
public function Paddle()
{
var child:Shape = new Shape();
child.graphics.beginFill(color);
child.graphics.drawRect(0, 260, 15, 80);
child.graphics.endFill();
addChild(child);
}
}
}
如果以这种方式更改属性不是最好的做事方式,那么当然要这么说。否则,我做错了什么,它不起作用?似乎与订单有关(当主类更改颜色属性时,它已经创建了矩形并且更改它为时已晚?)
感谢:D
编辑:意识到当我执行这段代码时会发生什么可能会有所帮助。基本上从 Engine 类更改颜色属性不会改变矩形的颜色,它们都只是保持白色(FFFFFF)