好的,所以我最近一直試圖在AS3的OOP中正確使用我的頭。現在我有一個非常簡單的場景,我有一個繪製矩形的類Paddle。在我的文檔類中,我創建了Paddle類的兩個實例paddle1和paddle2。更改AS3中的類屬性
我也爲我的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
編輯:意識到這可能有助於說明執行此代碼時會發生什麼。基本上改變來自發動機類的顏色屬性不會改變矩形的顏色,他們都只是停留白色(FFFFFF)
啊,它是如我所料,但我太累了,適當地看到它。不過,我有一種感覺,它與代碼的執行順序有關。 您對繪圖功能的建議效果很好,謝謝! – Ellis