![]() |
Проблема с обращением к инстанции класса
Ум немного за разум уже заходит...
Вот такой код: Код:
trace(searchItemAnim.searchItemList.getChildAt(0))Подскажите, пожалуйста, может я чего-то не понимаю... |
а что он должен вернуть? шлем экстросенсорики забыл в другом городе.
|
Цитата:
Ведь если я ручками (не кодом) сделаю мувиклип smth в мувиклипе anything и помещу на сцену, то смогу обращаться к первому по ссылке anything.smth Иначе зачем еще нужны instance name... ~ ~ ~ Все-таки получил доступ через Код:
searchItemAnim.searchItemList.getChildByName("instance1")Как можно узнать полную сылку на объект? К примеру, в as2 достаточно было просто сделать trace(имя_объекта). Как теперь это возможно? |
Что-то я понял, что адски протупил... все решил. Прошу прощения за еще одну тему, загромождающую форум...
|
В AS1/AS2 для обращения к мувику создавалась ссылка на него, с тем же именем. В AS3 этого нет, хотя Flash CS3 создает эти ссылки сам, при компиляции. Пользоваться ими я не советую.
|
Цитата:
Вот меня тоже это интересует... предположим, у меня есть главный класс он создает экземпляр другого класса, скажем я создаю класс отвечающий за кораблик космический... и мне надо чтоб на нажатие кнопки мыши создавались лучи лазера. Как мне получить лучше ссылку на стейдж? что то я не до конца понимаю пока что механизм... единственный вариант который я нашел это передавать стейдж из документКласса в остальные... есть ли все таки лучше варианты? чтобы я мог из класса который там через десять коленей от главного прикрепить тот же лазер к сцене? записью типа Код:
parent.addChild(laser) |
Цитата:
|
Цитата:
вроде такого? Код:
addEventListener(Event.ADDED_TO_STAGE, onAddedToStageEvent) |
Я не очень понял, что вы хотите сделать.
|
Если уж совсем нужно обязательно обращаться к стейдж, в Document Class'e создайте синглтон и обращайтесь через него...
Только надо ли так делать? Может создать какой-нибудь беттлфилд, на котором будут находиться лучи и корабли... |
суть вот в чем... есть мувик, класс к нему, мувик- в нем косм.кораблик скажем.
еще есть мувик в нем нарисован лазерный луч, класс к нему, описывающий его движение, при этом в конструктор надо бы передать начальные координаты и угол, эти данные брать надо из класса отвечающего за косм.кораблик. логично появление лазера на нажатие мыши. ну следовательно и событие сответствующее. чтоб получить доступ к стейджу простым способом можно просто поместить обработчик событий в главный класс и передавать параметры обьекта кораблика, но еще более логично чтобы сам кораблик создавал эти лучи, но если он будет делать просто addChild(laser) то лазеры будут двигаться вместе с корабликом. по сему хорошо бы было чтобы кораблик отвечал за добавление лазеров, но не в себя так сказать а на главную сцену, если можно так выразится. тут то и возникает проблема обращения к стейджу, null-object говорит мне компилятор, я нашел выход, но мне кажется это не лучший вариант: передавать в конструктор класса, отвечающего за кораблик, ссылку на стейдж. вот... Цитата:
просто вопрос в том что как лучш всего обращаться к другим обьектам... |
Вот мы и вернулись к вопросу вот этой темы: http://www.flasher.ru/forum/showthread.php?t=113576
__etc, спасибо - я как раз понял тогда, что загвоздка именно в путях. Путь к самому MovieClip'у может отличаться от его вложенности в другой как графического представления (что-то я загнул..) |
суть моего вопроса скорее не как а какой наилучший подход!
жду ответа от _etc... |
я сделал так док. класе g.stag=this//.stage
a всякие обьекты на стейже создаються глоб функцией icreate(x,y,someclass) в которой Код:
package { |
Можно, кстати, просто сделать глобальную функцию, которая будет возвращать ссылку на stage!
Как, кстати, в as3 описываются глобальные функции? |
AL.exe зачем для етого целую фкцию ? достаточно переменной )
а описываеться смотри мой предыдущий пост) |
Честно говоря, не совсем понял. В мануале говорится, что для объявления глобальной переменной достаточно объявить ее вне функции и класса, но что-то, по-моему, это не работает... или я уже совсем сонный..
|
Цитата:
|
Цитата:
да и плюс я пользуюсь твоим шаблоном на котором ты осуществляешь нормальную работу прелоадера, и контролирующий класс, не является классом документа... так то... |
ramshteks, надо использовать кнопку http://www.flasher.ru/forum/images/r...ttons/edit.gif, а не создавать несколько сообщений подряд.
|
извиняюсь... понял свою ошибку
|
Цитата:
|
поймите __etc проблема которую я описал является абстрактной.
я не пишу сейчас ничего подобного. меня интересует вопрос каким образом получать доступ к стейджу наилучшим способом!? я решу эту проблему легко: в конструктор кину сссылку на стейдж и буду счастлив, вопрос в томм что мне кажется этот способ не лучшим, и скажем так плохим тоном. если тебя не затруднит _etc, не мог бы ты дать мне пару исхдников твоих, того что ты уже продал, ради изучения... хочу уувидеть как решают эту проблему те кто давно занимается третьим скриптом |
А нет никакой проблемы, собственно. Есть соответствующее событие, вот и все.
з.Ы. Я не продаю скрипты. |
Вложений: 1
если это не проблема, тогда не мог бы ты чуток подправить этот код чтоб не было ошибки.
или если можно дай ссылку где почитать про эту ошибку. на русском языке |
Цитата:
|
Вложений: 1
прошу прощения... забыл вложить самое главное... DocumentClass
|
В TStar.as закомментируй
//trace(stage.stageWidth) |
Цитата:
мне нужно получить в тстаре ширину стейджа! |
Думаю, вам подойдет:
Код:
trace(searchItemAnim.searchItemList.getChildByName("instance1")); |
Цитата:
|
Вложений: 1
я думаю __etc имел ввиду это (см аттач)
Вложение 19920 |
Цитата:
|
а ну да:) простите
|
Цитата:
Каков вопрос - такой ответ - что поправить, чтоб работало... - комментируй то что до добавления на сцену не имеет ссылки на stage... ИЛИ прежде чем писать игры почитать напр. здесь п.84... По мне так проще стат. свойства ничего и не надо... |
к сожалению ничего нового я не узнал...((
либо толкать в конструктор ссылку на стейдж, либо через событие ADDED_TO_STAGE... как ранее говорил __етк.. Цитата:
)) я не просил выделить мне строчку на которой прога рушиться, а обойти проблеиу наилучшим способом да и еще так чтоб работало) Я занимаюсь программированием несколько лет и уж уверяю вас, дигностировать проги я умею) |
Цитата:
|
я не понимаю ADDED_TO_STAGE чем не устраивает? события - это мощное средство as3... че бы ими не пользоваться..
|
| Часовой пояс GMT +4, время: 18:32. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.