|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jan 2012
Сообщений: 45
|
Проверка существования объекта на сцене
Как узнать, сущетсвует ли объект с определенным именем ( в моем примере objname) на сцене?
Я пытаюсь сделать это так Если существует то все ок, а если не существует, выдается ошибка: 1120: Access of undefined property objname. |
|
|||||
|
|
|||||
Цитата:
Да не, код собранный во FlashIDE тоже падает на попытках пропихнуть строку в contains(), видимо с терминологией не очень И скорее всего надо действительно проверку добавить как bav предложил. Последний раз редактировалось expl; 27.05.2012 в 19:49. |
|
|||||
Регистрация: Jan 2012
Сообщений: 45
|
Не помогло, если объекта нет на сцене, выдает ошибку 1120: Access of undefined property objname.
|
|
|||||
Похоже, Вы обращаетесь не к имени объекта, а к полю, которое делает компилятор FlashIDE в классе, который генерирует из кода, который вы понаписали в кадрах.
Т.е. объект вообще статичный, добавленный руками на сцену. А так не падает? |
|
|||||
Регистрация: Sep 2015
Сообщений: 69
|
Проверка существования объекта всегда трасирует "Объект не существует", даже после нажатия на кнопки, почему?
Смысл этой проверки для моего кода: нажали "Об игре" функция нарисовала текст об игре, нажали "Инструкции" функция удалила (или скрыла как лучше?) текст об игре и нарисовала инструкции. function btnMouseHandle(e:MouseEvent):void { switch(e.target.name){ case "btn_PLAY": trace("btn_01 click"); break; case "btn_OPTIONS": trace("btn_02 click"); break; case "btn_INSTRUCTIONS": trace("btn_03 click"); ShowTextBlock (e.target.name); break; case "btn_ABOUT": trace("btn_04 click"); ShowTextBlock (e.target.name); break; case "btn_EXIT": trace("btn_05 click"); fscommand('quit'); break; } } function ShowTextBlock (strID:String):void { var myFormat:TextFormat = new TextFormat(); var AboutText = new TextField(); if (stage.contains(AboutText)) { trace("Объект существует"); //тут планировал removeChild (AboutText) } else { trace("Объект не существует"); } if (strID == "btn_INSTRUCTIONS") { AboutText.text = "ТЕКСТ ДЛЯ ИНСТРУКЦИИ"; } else { AboutText.text = "ТЕКСТ ДЛЯ ABOUT"; } addChild(AboutText); } |
|
|||||
Цитата:
Надо сначала его туда добавить, а уже потом проверять. Порядок строк имеет значение п.с. Не надо проверять stage.contains(...) Сначала советую почитать в документации как работает метод contains. Чтобы проверить добавлен ли объект на сцену, достаточно просто сделать так:
__________________
Ко мне можно и нужно обращаться на ты) |
Часовой пояс GMT +4, время: 10:14. |
|
« Предыдущая тема | Следующая тема » |
|
|