|
|
|||||
Регистрация: Apr 2014
Сообщений: 215
|
ошибка ArgumentError: Error #2025
накидал простенький пример, два квадрата на сцене фла, один типа герой - pers, другой скажем стена с именем - krasniKvadrat, вопрос,почему выходит такая ошибка и как можно исправить - ArgumentError: Error #2025: Предоставленный DisplayObject должен быть дочерним элементом вызывающего объекта.
package { import flash.display.MovieClip; import flash.events.Event; import flash.events.KeyboardEvent; import flash.ui.*; public class PrimerHero extends MovieClip { private var left:Boolean; public function PrimerHero() { stage.addEventListener(Event.ENTER_FRAME,ef) stage.addEventListener(KeyboardEvent.KEY_DOWN,kd) stage.addEventListener(KeyboardEvent.KEY_UP,ku) } private function ef(e:Event):void { if(pers.hitTestObject(krasniKvadrat)) { removeChild(krasniKvadrat); } if(left) { pers.x += 6; } } private function kd(e:KeyboardEvent):void { if(e.keyCode == Keyboard.RIGHT) { left = true; } } private function ku(e:KeyboardEvent):void { left = false; } } } |
|
|||||
Регистрация: Apr 2014
Сообщений: 215
|
а как можно узнать? Если например без быдлокодерства
Последний раз редактировалось delphic; 30.04.2014 в 02:42. |
|
|||||
Цитата:
|
|
|||||
Регистрация: Apr 2014
Сообщений: 215
|
Цитата:
иииии что мне это дает Добавлено через 1 час 18 минут и еще, вот подробней.смысл такой что берем детей что на сцене и смотрим на сталкивание. room это имя мувика в котором лежат дети. это есть у меня класс, беру мувик со стеной, к нему прикручевую класс в котором есть строка - if(platform[i].platformType =="wall") { room.removeChild(platform[i]); platform.splice(i,1); } можно конечна еще одно изображение сделать,прикрутить его к классу,сделать это изображение невидимым и положить вне сцены, тогда ошибки не будет)))) но все равно че за прикол такой Последний раз редактировалось delphic; 30.04.2014 в 11:25. |
|
|||||
Сань, да какой это быдлокод. Вполне нормальный подход для ас3. То, что у объекта вообще есть ссылка на родителя уже говорит о том, что ее можно использовать. Да и корявая работа метода contains() сама по себе вынуждает это делать
|
|
|||||
Регистрация: Jun 2013
Сообщений: 133
|
Извиняюсь за оффтоп, но в чем корявость этого метода? Если имеется ввиду что он проверяет и нижестоящие уровни, то это вроде не корявая работа, а заложенный функционал описанный в документации. Или есть ещё подводные камни?
|
|
|||||
Ну contains проверяет всю иерархию вложенностей дисплей листа до самого конца от того узла, где был вызван. Я не знаю, где вообще может понадобится узнавать, что где-то в пятом колене дисплей листа есть этот ДО, посему могли бы сделать метод упрощенным, завязанным на parent или хотя бы сделали бы вторым параметром флаг recursive, по умолчанию в false.
Под быдлокодерством я подразумевал то, что почему-то вдруг мы не знаем, кто содержит объект и обращаемся к его безликому по сути паренту. Это свидетельствует о том, что работа программы выходит из-под контроля, что чревато проблемами. Добавлено через 8 минут 2ТС Возьмите на вооружение дебаггер и смотрите построчно, что там где нулл. Очень тяжело что-то сказать по текущей информации. И ставьте проверки на существование parent.
__________________
тут я |
|
|||||
Именно это и есть корявая работа. Зачем нужна такая функция вообще? Где она реально может понадобится?
|
Часовой пояс GMT +4, время: 20:46. |
|
« Предыдущая тема | Следующая тема » |
|
|