Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблема с обращением к инстанции класса (http://www.flasher.ru/forum/showthread.php?t=113672)

AL.exe 05.07.2008 01:59

Проблема с обращением к инстанции класса
 
Ум немного за разум уже заходит...

Вот такой код:
Код:

trace(searchItemAnim.searchItemList.getChildAt(0))
//выводит "[object SearchItem]"

trace(searchItemAnim.searchItemList.getChildAt(0).name)
//выводит "instance1"


trace(searchItemAnim.searchItemList.instance1)
//выводит "undefined"

Собственно, не пойму, почему третья строка возвращает undefined и как мне тогда обратиться к instance1...

Подскажите, пожалуйста, может я чего-то не понимаю...

BlooDHounD 05.07.2008 02:05

а что он должен вернуть? шлем экстросенсорики забыл в другом городе.

AL.exe 05.07.2008 02:12

Цитата:

а что он должен вернуть? шлем экстросенсорики забыл в другом городе.
Полагаю, ссылку на объект.

Ведь если я ручками (не кодом) сделаю мувиклип smth в мувиклипе anything и помещу на сцену, то смогу обращаться к первому по ссылке anything.smth

Иначе зачем еще нужны instance name...

~ ~ ~

Все-таки получил доступ через

Код:

searchItemAnim.searchItemList.getChildByName("instance1")
Но не понял, почему я не могу обращаться напрямую...

Как можно узнать полную сылку на объект? К примеру, в as2 достаточно было просто сделать trace(имя_объекта). Как теперь это возможно?

AL.exe 05.07.2008 02:36

Что-то я понял, что адски протупил... все решил. Прошу прощения за еще одну тему, загромождающую форум...

etc 05.07.2008 11:10

В AS1/AS2 для обращения к мувику создавалась ссылка на него, с тем же именем. В AS3 этого нет, хотя Flash CS3 создает эти ссылки сам, при компиляции. Пользоваться ими я не советую.

ramshteks 05.07.2008 11:31

Цитата:

Сообщение от __etc (Сообщение 750195)
В AS1/AS2 для обращения к мувику создавалась ссылка на него, с тем же именем. В AS3 этого нет, хотя Flash CS3 создает эти ссылки сам, при компиляции. Пользоваться ими я не советую.


Вот меня тоже это интересует... предположим, у меня есть главный класс он создает экземпляр другого класса, скажем я создаю класс отвечающий за кораблик космический... и мне надо чтоб на нажатие кнопки мыши создавались лучи лазера.

Как мне получить лучше ссылку на стейдж? что то я не до конца понимаю пока что механизм... единственный вариант который я нашел это передавать стейдж из документКласса в остальные... есть ли все таки лучше варианты?

чтобы я мог из класса который там через десять коленей от главного прикрепить тот же лазер к сцене?

записью типа
Код:

parent.addChild(laser)

etc 05.07.2008 11:35

Цитата:

Сообщение от ramshteks (Сообщение 750197)
Вот меня тоже это интересует... предположим, у меня есть главный класс он создает экземпляр другого класса, скажем я создаю класс отвечающий за кораблик космический... и мне надо чтоб на нажатие кнопки мыши создавались лучи лазера.

Как мне получить лучше ссылку на стейдж? что то я не до конца понимаю пока что механизм... единственный вариант который я нашел это передавать стейдж из документКласса в остальные... есть ли все таки лучше варианты?

чтобы я мог из класса который там через десять коленей от главного прикрепить тот же лазер к сцене?

записью типа
Код:

parent.addChild(laser)

Что мешает подписаться на событие ADDED_TO_STAGE и работать с stage?

ramshteks 05.07.2008 11:52

Цитата:

Что мешает подписаться на событие ADDED_TO_STAGE и работать с stage?
тоесть в любом классе любой вложенности?

вроде такого?

Код:

addEventListener(Event.ADDED_TO_STAGE, onAddedToStageEvent)

private function onAddedToStageEvent(evt:Event){
        evt.stage.addChild(smth);
//поправьте если не прав? может нужно использовать target?       
}


etc 05.07.2008 12:00

Я не очень понял, что вы хотите сделать.

Сайлас 05.07.2008 12:15

Если уж совсем нужно обязательно обращаться к стейдж, в Document Class'e создайте синглтон и обращайтесь через него...
Только надо ли так делать? Может создать какой-нибудь беттлфилд, на котором будут находиться лучи и корабли...


Часовой пояс GMT +4, время: 09:42.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.