0
出於某種原因,我無法修改Haxe中某個字段的值。當然,這似乎並沒有影響我所有的領域,只是這個。這是(我很確定的)適用的代碼。首先,在父類: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的方式有關?任何幫助表示讚賞,謝謝。
此代碼在軌跡中正確返回777。爲什麼你有HelloWorld擴展MovieClip?我只問,因爲在我的情況下,父母和孩子班都擴展了雪碧,我想知道這是否可能是我的問題的來源。我會在我的問題中添加更多代碼;我試圖保持簡短。 – 2013-03-27 13:45:15
那麼,原來的代碼只是爲了表明我遇到了什麼樣的問題;修改後的代碼更能代表我的實際程序。不過,我仍然有同樣的問題。 Sprite有什麼膨脹?有什麼地方我可以閱讀更多關於這個?我只是想知道,因爲我認爲Sprite會比MovieClip更輕。 – 2013-03-28 13:42:45
那麼選擇什麼擴展到你的初始階段通常是一個非問題,實際上MovieClip擴展了Sprite,所以我錯了。在課堂上閱讀它,就像我剛剛糾正自己。像intellij想法這樣的帶有Goto Definition的IDE使得這更容易。你可能會發現看看一些關於顯示列表概念的文章很有幫助http://active.tutsplus.com/tutorials/actionscript/as3-101the-display-list/這裏講的是更多的http:/ /www.adobe.com/devnet/flash/quickstart/display_list_programming_as3.html – imp 2013-03-29 01:42:13