我是ActionScript新手,我正在爲僅支持ActionScript 2.0的網絡應用裝置編寫代碼。actionscript 2.0中的方法調用的時間問題XML onLoad()函數
我試圖讀取XML飼料和飼料(摘要和詳細信息)提取文本數據的兩片則顯示它們作爲兩個獨立的TextField,調整和重新定位的TextField一旦我知道過了多久他們每個人都是。
我已經成功地從提要中提取了值,並使用XML onLoad()方法填充了TextFields。在onLoad()方法的結尾,我想我可以調用我的類的私有resizeSummary()方法來做到這一點,但由於我明顯不明白在onLoad()方法內的原因,我似乎無法得到我的調用resizeSummary()方法。
我會撥打電話至resizeSummary()在後面的代碼,但是這似乎並不重要,因爲在onLoad()沒有被調用,直到一切完成之後。所以似乎有一個時間問題,我不知道如何控制。
最簡單的解決辦法是,如果我能想出如何讓我叫在XML的onLoad()函數事件resizeSummary()方法。
第二個最簡單的解決方案是,如果我可以在onLoad()完成時通知我可以調整TextField的大小。
從我的類的代碼片段出現在這個帖子底部。
class Foo {
// constructor
function Foo() {
initSummaryTextField();
getData();
}
private function getData() {
var xmlData = new XML();
xmlData.onLoad = function(success:Boolean): Void {
if (success) {
var summary:String = '';
// successfully extracted summary text at this point and assigned value
// to TextField .text variable. So I am good to here.
// THIS CALL NEVER SEEMS TO BE MADE EVEN THOUGH TRACE STATEMENT
// IMMEDIATELY PRECEEDING IT DOES.
trace("About to call resizeSummary()");
this.resizeSummary();
}
}
xmlData.load("URL TO SERVICE");
}
private function initSummaryTextField() {
// do stuff here to create new TextField() for summary
}
private function resizeSummary() {
trace("calling resizeSummary");
}
}
如果我刪除了 '這一點。'從onLoad()函數定義中的resizeSummary()調用腳本不能編譯。我使用的是mtasc ubuntu編譯器,我得到的錯誤信息是類型錯誤Unknown variable resizeSummary。 – jspyeatt