何らかの理由で、Haxe のフィールドの値を変更できません。もちろん、これは私のすべての分野に影響しているようには見えません。これが(私が確信していることです)適用可能なコードです。まず、親クラスで:
class TopMenu extends Sprite
{
public function new()
{
super();
init();
}
private function init()
{
var tempField:BitmappedTextField = new BitmappedTextField( "File", 100, false );
trace( tempField.textWidth );
}
}
次に、子クラスで:
class BitmappedTextField extends Sprite
{
private var _fieldText:String;
private var _fieldWidth:Int;
private var _addToStage:Bool;
public var textWidth:Int;
public function new( thisText:String, thisWidth:Int = 100, adTStg:Bool = true )
{
super();
_fieldText = thisText;
_fieldWidth = thisWidth;
_addToStage = adTStg;
textWidth = 55;
init();
}
public function init()
{
textWidth = 777;
}
}
trace
ステートメントが返されることを期待し777
ますが、代わりに常に返され55
ます。実際、私が何をしても、コンストラクター クラスの外部でフィールドを変更してから、親クラスを介してその値を取得することはできないようです。欠けているに違いない恐ろしく単純なものがありますが、それを理解することはできません. もしかしたら、Haxe が getter と setter を使用する方法に関係があるのでしょうか? どんな助けでも大歓迎です、ありがとう。