|
|
|||||
Как вернуть значение из события?
Есть вот такая корявая функция отправки/получения данных с сервера.
function senderData(id:Number, param:String, script:String):Boolean { var sendLoader:URLLoader = new URLLoader(); var sendRequest:URLRequest = new URLRequest('mydomen'+script+'.php' + '?' + Math.random()); sendRequest.method = URLRequestMethod.POST; var sendVars :URLVariables = new URLVariables(); sendVars['id'] = id; sendVars['param'] = param; sendRequest.data = sendVars; sendLoader.load(sendRequest); var resulter:Boolean = false; sendLoader.addEventListener(Event.COMPLETE, function(e:Event) { if (sendLoader.data == "ok") { resulter = true; } }); return resulter; } Добавлено через 29 минут Разобрался. Создал новый event и добавил слушателя на него.
__________________
Надо сменить подпись... |
|
|||||
Регистрация: Nov 2015
Сообщений: 46
|
наверное так:
function senderData(id:Number, param:String, script:String):Boolean { var sendLoader:URLLoader = new URLLoader(); var sendRequest:URLRequest = new URLRequest('mydomen'+script+'.php' + '?' + Math.random()); sendRequest.method = URLRequestMethod.POST; var sendVars :URLVariables = new URLVariables(); sendVars['id'] = id; sendVars['param'] = param; sendRequest.data = sendVars; sendLoader.load(sendRequest); var resulter:Boolean = false; sendLoader.addEventListener(Event.COMPLETE, function(e:Event) { if (sendLoader.data == "ok") { resulter = true; Poluchi(); } }); return resulter; } function Poluchi(){ trace(resulter); } |
|
|||||
Он будет ругаться на эту строку, типа, "функция не возвращает значение". Уже пробовал
dispatchEvent очень хорошо тут помог
__________________
Надо сменить подпись... |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
1)Нет решительно никакого смысла что-то возвращать из обработчика события, т.к. тому, кто его вызывает по барабану на то, что обработчик там возвращает.Точнее возврат значения имеет смысл только если функция-обработчик используется для чего-то еще помимо обработки события.
2)Использование анонимной функции в качестве обработчика и несохранение ссылки на нее(на функцию), делает невозможным потом отписаться от этого события и как следствие приводит к тому, что объект sendLoader не будет удален сборщиком мусора, что есть утечка памяти. |
|
|||||
Цитата:
|
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
Можно конечно, но это извращение.А что если объект-диспетчер является частью пула и подразумевает повторное использование?
|
|
|||||
Цитата:
|
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
а если событие, где происходит отписка, еще не наступило?
|
|
|||||
Суть в том, что настройка звука в приложении синхронизирована с сервером. При нажатии на кнопку на сервер отправляется запрос через выше указанную функцию. Мне нужно как-то обработать ответ. return'ы не помогали, поэтому, решил диспатчить события
__________________
Надо сменить подпись... |
Часовой пояс GMT +4, время: 20:48. |
|
« Предыдущая тема | Следующая тема » |
|
|