Форум 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=181278)

morgenshtern 20.06.2012 16:57

Уважаемые, красиво ли делать в ребенке мейна some_class_1 так:
Код AS3:

private var main:Main;
//..........
main = (root as Main);

что бы потом обращаться к некоему видимому из мейна класcу main.some_class_2 ?

Aquahawk 20.06.2012 16:59

нет некрасиво. Если ребёнку вообще не нужно знать ссылку на мейн, ну вот прям совсем не нужно, отправляйте событие из себя.

a_[w] 20.06.2012 18:55

Я пишу Flash IDE компоненты и для создания алертов и прочих попапов я использую стейдж, который выше рута. Туда добавляется несколько слоёв менеджеров для для отображения алертов, попапов, курсоров и прочей нечести. У них там свои события и своя микрофлора. Делаю это потому что все эти вещи всегда, не зависимо от логики конечного приложения, должны быть выше всего контента приложения. Благодаря этому подходу я могу не париться о том, что там напишет другой разработчик. Стейдж такой же инструмент как и прочие публичные вещи в API флеш плеера.

Wolsh 20.06.2012 20:05

Да-да. То есть, как бы ни хотел товарищ разработчик поместить свой курсор выше всего контента, он все-равно будет проваливаться под ваши алерты и попапы. Бедолага вынужден использовать Ваш курсор? Отличное решение вами же созданных проблем)) А главное — как же неимоверно сложно было научить менеджер добавлять попап наверх списка отображения рута....

a_[w] 20.06.2012 20:20

Цитата:

Сообщение от Wolsh (Сообщение 1085344)
Да-да. То есть, как бы ни хотел товарищ разработчик поместить свой курсор выше всего контента, он все-равно будет проваливаться под ваши алерты и попапы. Бедолага вынужден использовать Ваш курсор? Отличное решение вами же созданных проблем)) А главное — как же неимоверно сложно было научить менеджер добавлять попап наверх списка отображения рута....

Это вы по кофейной гуще нагадали или звёзды подсказывают? Курсоры легко, без проблем, меняются. Зачем кого-то чему-то учить если можно просто добавить поверх всего?

Wolsh 20.06.2012 23:35

Цитата:

Стейдж такой же инструмент как и прочие публичные вещи в API флеш плеера.
Например? Вы можете создать новый экзепляр Stage? Добавить его ребенком в Список отображения? Изменить высоту/ширину? Написать для него свою логику управления детьми, которых в него добавляете?
Цитата:

Благодаря этому подходу я могу не париться о том, что там напишет другой разработчик.
Охотно верю. Пусть парится он. Чудесные AS2 компоненты от Adobe всё еще живы в памяти))).
Цитата:

Зачем кого-то чему-то учить если можно просто добавить поверх всего?
Да потому что костыль. Быстрое, простое и очевидное неправильное решение "лишь бы работало".

a_[w] 20.06.2012 23:54

Полезность инструмента характеризуется возможностью создания экземпляров его класса или возможностью изменения логики его работы? Это странно и вопросы странные -- вы задаёте вопросы на которые уже известны ответы. Например, я могу добавить в него детей, могу изменить режим отображения fullScreen/normalMode, могу добавить stageVideo для отображения, и прочее можно посмотреть в референсе. Не хотите/не умеете пользоваться, не надо, никто не заставляет. Так уж сложилось, что точкой входа в приложение служит рутовый дисплей обжект, а не стейдж, но это же не значит, что теперь его использования нужно избегать.

Цитата:

Да потому что костыль. Быстрое, простое и очевидное неправильное решение "лишь бы работало"
Надеюсь, на этом доводы не закончились.

Wolsh 21.06.2012 00:24

Цитата:

вы задаёте вопросы на которые уже известны ответы.
Ага. Это называется "риторические вопросы".
Цитата:

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

Правильно ли я понимаю, что Вам нет дела до писанины разработчика, использующего Ваши компоненты, ровно до того момента, пока он не напишет в своем коде "stage.addChild()"?

a_[w] 21.06.2012 01:14

В стейдж добавили то что необходимо для работы приложения и методы субкласса DisplayObjectContainer. Разработчики флеш плеера могли достаточно просто запретить добавление объектов выше рута.
Верно, по большому счёту нет дела. Моя задача указать как пользоваться и что делать нельзя. Вероятность того, что он полезет на стейдж _значительно_ меньше, чем вероятность добавления детей в рут.

garymar 22.06.2012 13:28

Все равно мне кажется это спорный вопрос... Если приложение нуждается в доступе к stage, то нужно его в любом случае передавать. Я встречал много уроков толковых разработчиков где передавали stage в другие классы (Например при использовании box2D...)... Или например, как мне получить свойства stage из другого класса... В этом случае нужно передавать stage в другой класс... А иначе как?

Добавлено через 13 минут
Wolsh, по сути вы предлагаете создать какой-то контейнер и работать полностью с ним? Я правильно понял?


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

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