PDA

Просмотр полной версии : Значение метода


tandem
29.11.2009, 23:51
Добавлено через 24 часа 43 минуты
Еще вопрос по этой теме.

Есть метод загрузки XML xmlAnswer, с описанными для него обработчиками. В обработчике происходит некоторая функция по записи переменной в память.

Как-то можно сделать рабочей конструкцию типа:
var answered:String = xmlAnswer(getVariable(120,id));

чтобы по запуску этого события в переменную answered попадало строковое значение загруженных из ХМЛ данных?

Естественно что xmlAnswer функция типа void

TanaTiX
30.11.2009, 00:06
сделать эту функцию :String

tandem
30.11.2009, 00:15
public function xmlAnswer(request:String, type:String):void {
var urlRequest: URLRequest = new URLRequest(request);
var urlLoader: URLLoader = new URLLoader();

urlLoader.addEventListener(Event.COMPLETE, var_put);

try {
urlLoader.load(urlRequest);
} catch (error:Error) {

}
}

Ведь эта моя функция ничего не возвратит если ей тип поменять? Действие-то происходит в обработчике, который описан отдельной функцией.

Может я конечно затупил, недавно начал только разбираться. Буду признателен за разъяснение.

SamFR
30.11.2009, 01:12
Никак. Используйте события либо callback-функцию. Но лучше события.

tandem
30.11.2009, 12:52
Ок, пасиб тут что-нить попробую, а вот теперь другая проблема:

public function var_check(event: Event):void { //Обработчик события, загружающего хмл
...
welcome.but.addEventListener(MouseEvent.CLICK, get_vote);
...
}

public function get_vote():void {
trace('click but');
}


Так вот обработчик get_vote не запускается. А если в welcome.but.addEventListener(MouseEvent.CLICK, get_vote); вместо get_vote прописать уже сам метод (типа function ()...), то оно срабатывает.

Как быть? Хотелось бы метод отдельно прописать, а то при выравнивании кода, все портится, и ошибки лезут.

cleptoman
30.11.2009, 12:55
public function get_vote(event:MouseEvent):void {
trace('click but');
}