2013-11-22 47 views
0

我有一個關於在ActionScript 3.0中傳遞屬性的問題。我目前的設置是這樣的。你如何高效地傳遞對象屬性?

ballObject(name:String,imageID:String,category:String,price:Number,description:String,priority:String) 

我從XML文件中獲取這些值。正如你可以看到它看起來很糟糕。我想知道是否有另一種方式來做到這一點,什麼設計方法會更好?我正在尋找更具動態的方法。現在,如果我想添加一個新的值,它似乎很難編碼英寸

編輯: 噢,我加載這些對象與BallManager類,這就是爲什麼我傳遞參數。讓ballObjects自己從XML獲取屬性或保持ballManager傳遞參數會更聰明嗎?

+0

您可以創建一個具有所有屬性的模型類並將其傳遞到您的ballObject函數模型中。或者,也許你可以在你的對象中傳遞xml節點。沒有更多的代碼,很難說更多 –

+0

傳遞整個節點似乎是一個好主意!我不敢相信我從來沒有想過這個!你能把它作爲答案嗎?我很抱歉,這個問題與代碼無關。這更多的是結構/方法問題。 – Banzboy

回答

1

您可以將XML字符串或對象傳遞給構造函數,然後檢索類構造函數內的屬性。由於您已經有了XML,因此您可以使用該XML或XML解析對象的一部分作爲屬性的來源。然後,如果您需要其他屬性,則只需將一行代碼添加到構造函數中。

public function BallObject(source:Object) { 
    this.name=source.name; 
    this.imageID=source.imageID; 
    // etc 
} 

您與解析的XML對象調用它,說你已經有了XML對象的數組,並通過XML構造解析它,這樣你的XML對象都有一個名爲數組說balls。然後您可以這樣做:

for (var i:int=0;i<xml.balls.length;i++) { 
    var ball:BallObject=new BallObject(xml.balls[i]); 
    // process ball 
} 
+0

就是這樣!謝謝。 – Banzboy

相關問題