Я новичок в ActionScript и пишу код для сетевого устройства, которое поддерживает только ActionScript 2.0.
Я пытаюсь прочитать XML-ленту и извлечь из нее две части текстовых данных (сводку и подробности), а затем отобразить их как два отдельных текстовых поля, изменяя размеры и перемещая текстовые поля, как только я знаю, как долго каждый из нихare.
Я успешно извлек значения из ленты и заполнил поля TextFields с помощью метода XML onLoad ().В конце метода onLoad () я подумал, что могу просто вызвать закрытый метод resizeSummary () моего класса, чтобы сделать это, но по причинам, которые я явно не понимаю в методе onLoad (), я не могу получить свойВызванные методы resizeSummary ().
Я бы сделал вызов resizeSummary () позже в коде, но, похоже, это не имеет значения, потому что onLoad () вызывается только после того, как все остальное сделано,Так что, похоже, существует проблема синхронизации, которую я не знаю, как контролировать.
Самое простое решение было бы, если бы я мог выяснить, как получить метод resizeSummary (), вызываемый в функции xml onLoad ()event.
Второе простейшее решение было бы, если бы я мог получать уведомления о завершении onLoad (), чтобы я мог изменить размеры TextFields.
фрагмент кода из моего класса появляется внизуэтого сообщения.
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");
}
}