さて、私は最近、AS3のOOPに頭を悩ませようとしています。今のところ、長方形を描くクラスPaddleがあるという非常に単純なシナリオがあります。私のドキュメントクラスでは、Paddleクラスの2つのインスタンス、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);
}
}
}
この方法でプロパティを変更することが最善の方法ではない場合は、もちろんそう言ってください。そうでなければ、それが機能しないという私は何を間違っていますか?順序に関係しているようです(メインクラスが色属性を変更するまでに、既に長方形が作成されており、変更するには遅すぎますか?)
ありがとう
編集:このコードを実行するとどうなるかを言うのに役立つかもしれないことに気づきました。基本的に、Engineクラスからcolor属性を変更しても、長方形の色は変更されず、両方とも白のままです(FFFFFF)