|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Aug 2013
Сообщений: 73
|
Отслеживание наличия объекта на сцене
Доброго времени суток. Есть функция, которая получает данные с сервера:
private function loadData(e:Event = null):void { var loader:URLLoader = new URLLoader( ); var stat_request:URLRequest = new URLRequest("http://localhost/test.php"); stat_request.method = URLRequestMethod.POST; loader.dataFormat = URLLoaderDataFormat.TEXT; var vars:URLVariables = new URLVariables( ); vars['do'] = "get"; stat_request.data = vars; loader.load(stat_request); loader.addEventListener(Event.COMPLETE, onComplete); } private function onComplete(e:Event):void { createData( ); e.target.removeEventListener(Event.COMPLETE, onComplete); } Требуется при нажатии на кнопку, повторно вызвать загрузчик и получать данные с сервера, уже с другими параметрами. Не придумал ничего другого, как отправлять событие из другого класса и ловить его loadData(e:Event = null). Проблема в том, что при очередном срабатывании кнопки, все данные загружаются с сервера, но вот объект mView добавляется поверх существующего. Попытки отловить его наличие на сцене и удалить не привенчали к успеху. Хотя объект и виден в проигрывателе. В трейсе вот что: При повторной загрузке в трейсе тоже самое. Последний раз редактировалось dendead; 28.03.2014 в 23:54. |
|
|||||
вы хотите чтобы объект mView добавлялся только один раз?
Тогда так можно сделать: |
|
|||||
Регистрация: Aug 2013
Сообщений: 73
|
Но при попытке загрузить данные с сервера повторно, объект с другими данными уже не будет добавляться... Поэтому этот вариант не подойдёт.
Требуется добавить объект, а при следующей загрузке очистить сцену и добавить новый объект. Добавлено через 16 минут В этом то и проблема, что объект отображается на сцене, код этого не показывает. |
|
|||||
Регистрация: Aug 2013
Сообщений: 73
|
alexandrratush, samana, спасибо. Буду пробовать.
|
|
|||||
Советую забыть про метод contains, Так как он работает совсем не так, как нужно. Он вернет true, даже если объект лежит в другом контейнере, а этот контейнер добавлен в другой контейнер у которого вызывается contains.
Лучше проверять так: Этот способ гарантировано сработает. П.с. наверняка найдутся те, кто сейчас скажет, что мол не должен дочерний объект управлять родителем и что это нарушение инкапсуляции и т.д. Но вот это как раз тот случай, когда лучшего варианта не предложат. Я лично всегда таким способом пользуюсь, и мне пофиг кто там что думает) |
Часовой пояс GMT +4, время: 00:56. |
|
« Предыдущая тема | Следующая тема » |
|
|