![]() |
Как передать stage и stage3D в объект другого класса?
Заголовок не полностью отражает суть вопроса.По порядку
У меня есть пара вопросов,в actionscript 3 примерно с месяц (меня на летнюю практику отправили и дали разбираться с as3 и alternativa3d) всё познать не успеваю. Собственно вопрос следующим образом Есть класс сцена в котором прописывается парсер создаются контроллеры пишутся stage.align и прочее. в main файле пишется Код:
public class Main extends Scene {}хочется сделать по иному,чтобы в объект класса сцены передавался xml. Но в классе сцена производятся следующие манипуляции Код:
stage.align = StageAlign.TOP_LEFT;Код:
import SceneСудя по всему придётся всё onEnterFrame и прочее подобные вещи переносить в main да? Вообще хочется понять разницу между подходами.В первом случае extended я вообще ничего не вызываю,но при этом всё выполняется.(Простите если глупый вопрос,просто в голове не как не уляжется). Выдаёт ошибку что stage находится в Scene. То есть нужно производить инициализацию stage(всякие align и прочее) и stage3D(stage.stage3ds[0] и т.д.) в Main а потом передавать в сцену? Извините за сумбурность текста и вопросов,написал как мог. |
в первом случае (наследование: Main extends Scene ) main это объект Main со всеми свойствами\методами Stage, при его создании выполняется и все то, что прописано в конструкторе Stage
во втором случае (композиция) main просто несет на борту объект Stage, все что будет в нем сделано/определено доступно только через него же (через sc в твоем контексте) инициализацию, связанную со stage, можно производить и в sc, но после того как stage будет в нем доступен (получит ссылку или будет добавлен в дисплейЛист, если это DisplayObject) |
А в какой момент объявляется stage? stage он же имеет тип InteractiveObject и как я понимаю чтобы его передать мне нужно его иницилизировать в main?(При этом когда я делал extends Scene в сцене я нигде не объявлял stage, он просто есть откуда-то и я им пользуюсь) то бишь я попытался сделать так:
Код:
package мне нужно в мэйне объявить что-то вроде Код:
var eventsource:InteractiveObject;Вообще мне желательна композиция чтобы без расширения класса импортировать в любое приложение свои классы и они бы прекрасно работали. |
>> А в какой момент объявляется stage?
stage нигде не объявляется, это ссылка на объект Stage плеера, она есть у всех диплейОбжектов ( когда они добавлены в дисплей лист) >> он же имеет тип InteractiveObject и как я понимаю чтобы его передать мне нужно его иницилизировать в main та же песня: это ссылка\указатель, чтобы ее передать не надо ничего инициализировать.. боюсь мы немного на разных языках говорим, сори |
Хорошо,тогда поставлю вопрос следующим образом.
Как мне сделать класс Main таким образом чтобы все работы со stage такие как : Код:
stage.align = StageAlign.TOP_LEFT;Код:
package Код:
.........Код:
[Fault] exception, information=TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null". |
вариант 1 (Scene - дисплейОбжект, имеет доступ к stage после addChild(sc))
Код AS3:
Код AS3:
Код AS3:
Код AS3:
|
Спасибо большое,работают оба варианта.
|
| Часовой пояс GMT +4, время: 22:19. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.