Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.06.2012, 21:34
temofony вне форума Посмотреть профиль Отправить личное сообщение для temofony Найти все сообщения от temofony
  № 1  
Ответить с цитированием
temofony
[+5 27.02.11]
[+ 26.04.11]
 
Аватар для temofony

Регистрация: Feb 2010
Сообщений: 153
Отправить сообщение для temofony с помощью ICQ Отправить сообщение для temofony с помощью Skype™
По умолчанию Как добавлять на сцену мувиклипы не из основного класса.

Здравствуйте. Интересует следующее:
Например, мне необходимо добавлять на сцену мувики из библиотеки средствами as3(flash cs5.5).
Если это делать из основного класса документа то все понятно-ставим экспорт для экшена в свойствах мувика в библиотеке.Затем в коде пишем к примеру следующее и мувик как и положено появляется:

Код AS3:
var b:Bullet;
b=new Bullet();
b.x=getChildByName("ship").x;
b.y=getChildByName("ship").y;
addChild(b);
Но как проделать такую же операцию не из основного класса документа, а из какого либо другого?!(класс состоит в одном пакете с основным классом документа)

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

Код AS3:
var b:Bullet;
b=new Bullet();
b.x=getChildByName("ship").x;
b.y=getChildByName("ship").y;
addChild(b);
Но ничего не происходит. Конструктор выполняется, проверено-trace.Но мувика нет. С основного же класса документа такая махинация работает.

Добавлено через 13 минут
сабж up

Добавлено через 36 минут
ауууу
__________________
Незнание правил освобождает от ответственности.

Старый 20.06.2012, 02:09
garymar вне форума Посмотреть профиль Отправить личное сообщение для garymar Найти все сообщения от garymar
  № 2  
Ответить с цитированием
garymar

Регистрация: Sep 2010
Сообщений: 81
Передавай в другой класс stage или this из основного класса, затем просто в другом классе делаешь своё this.addChild(b); или stage.addChild(b);

Вот и все... ))

Старый 20.06.2012, 03:53
vizgl вне форума Посмотреть профиль Отправить личное сообщение для vizgl Найти все сообщения от vizgl
  № 3  
Ответить с цитированием
vizgl
 
Аватар для vizgl

Регистрация: Jun 2012
Сообщений: 70
Код AS3:
public function Main()
{
    var container: YourClassContainer = new YourClassContainer();  // должен наследоваться от Sprite или MovieClip
    addChild(container);
}
Код AS3:
public function YourClassContainer()   // конструктор
{
    var b:Bullet;
    b=new Bullet();
    b.x=getChildByName("ship").x;
    b.y=getChildByName("ship").y;
 
    addChild(b);
}
Уловил махинации? Можешь в конструктор YourClassContainer передать stage и добавить обьект на stage.
__________________
Блог: http://devizgl.blogspot.com/


Последний раз редактировалось vizgl; 20.06.2012 в 03:55.
Старый 20.06.2012, 09:10
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 4  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Никогда не добавляйте объекты на stage.
Никогда не советуйте никому добавлять объекты на stage.
Всегда отучайте других добавлять объекты на stage.
Никогда никому не передавайте ссылку на stage, если этого можно избежать.

Добавлено через 8 минут
temofony, апать темы запрещено Правилами форума. Здесь Вам никто ничем не обязан; покрикивайте на своих подчиненных, если они у Вас есть.
Теперь Вы это Правило знаете. Напоминаю, что третий плюс означает бан.
__________________
Reality.getBounds(this);

Старый 20.06.2012, 09:50
temofony вне форума Посмотреть профиль Отправить личное сообщение для temofony Найти все сообщения от temofony
  № 5  
Ответить с цитированием
temofony
[+5 27.02.11]
[+ 26.04.11]
 
Аватар для temofony

Регистрация: Feb 2010
Сообщений: 153
Отправить сообщение для temofony с помощью ICQ Отправить сообщение для temofony с помощью Skype™
спасибо vizgl)
__________________
Незнание правил освобождает от ответственности.

Старый 20.06.2012, 12:47
garymar вне форума Посмотреть профиль Отправить личное сообщение для garymar Найти все сообщения от garymar
  № 6  
Ответить с цитированием
garymar

Регистрация: Sep 2010
Сообщений: 81
Обоснуй плиз про stage

Старый 20.06.2012, 12:59
Aquahawk вне форума Посмотреть профиль Отправить личное сообщение для Aquahawk Посетить домашнюю страницу Aquahawk Найти все сообщения от Aquahawk
  № 7  
Ответить с цитированием
Aquahawk
 
Аватар для Aquahawk

Регистрация: Nov 2010
Адрес: Москва
Сообщений: 915
Записей в блоге: 4
Отправить сообщение для Aquahawk с помощью ICQ Отправить сообщение для Aquahawk с помощью Skype™
это не создаёт никаких плюсов. Просто представьте что documentClass это stage и добавляйте всё в него.
Это несёт минусы по части всплытия ивентов мимо документ класса и создаёт некоторые не столь очевидные архитектурные проблемы.
__________________
:)

Старый 20.06.2012, 13:44
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 8  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Обоснуй плиз про stage
На stage добавляется дисплейный объект-контейнер Документ-класса.
Все остальные объекты должны являться его детьми и управляться им.
Все, что вне Документ-класса, является вражеским контингентом, неуправляемым и непредсказуемым, находящимся "в плеере", но ВНЕ приложения.
Не говоря уже о том, что сама по себе команда из Мейна "стейдж, добавь себе это дитя, и без вопросов" является грубейшим нарушением священной иерархии "дети не приказывают родителям, а только информируют их".
Если всякая второстепенная мелюзга будет изменять по своей прихоти родительские объекты, на приложении можно ставить крест.
Это и есть те "некоторые не столь очевидные архитектурные проблемы", о которых упоминает Aquahawk. Я бы сказал, очевидные и недопустимые.
Просто товарищи начинающие частенько не осознают терминологию, просто не знают как правильно сказать, а как сказать не надо))
В результате и сформировался такой слэнг, "добавить на стейдж", и все это повторяют повсеместно, вплоть до примеров кода(!), где бездумно пишут stage.addChild(...).
Хотят сказать "добавь на сцену", при этом под сценой подразумевая тоже не Scene, а Display List вообще.
При этом и слово "сцена" заменяют словом стейдж, подразумевая некое абстрактное вместилище дисплейных объектов.
Но оно не абстрактное. Стейдж это вовсе не стандартный DisplayObjectContainer, у него очень много своих нюансов и свое конкретное назначение, выходящее за рамки логики приложения.
Приложение не может пользоваться стейджем как своим ребенком в любом смысле. Это Приложение является ребенком Стейджа.
Соблюдайте иерархию, и вопрос потеряет смысл.
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 20.06.2012 в 14:00.
Старый 20.06.2012, 13:58
Aquahawk вне форума Посмотреть профиль Отправить личное сообщение для Aquahawk Посетить домашнюю страницу Aquahawk Найти все сообщения от Aquahawk
  № 9  
Ответить с цитированием
Aquahawk
 
Аватар для Aquahawk

Регистрация: Nov 2010
Адрес: Москва
Сообщений: 915
Записей в блоге: 4
Отправить сообщение для Aquahawk с помощью ICQ Отправить сообщение для Aquahawk с помощью Skype™
Wolsh Мне лень было всё это писать. Абсолютно точно.
__________________
:)

Старый 20.06.2012, 15:33
vizgl вне форума Посмотреть профиль Отправить личное сообщение для vizgl Найти все сообщения от vizgl
  № 10  
Ответить с цитированием
vizgl
 
Аватар для vizgl

Регистрация: Jun 2012
Сообщений: 70
Цитата:
Сообщение от Wolsh Посмотреть сообщение
На stage добавляется дисплейный объект-контейнер Документ-класса.
Все остальные объекты должны являться его детьми и управляться им.
Все, что вне Документ-класса, является вражеским контингентом, неуправляемым и непредсказуемым, находящимся "в плеере", но ВНЕ приложения.
Не говоря уже о том, что сама по себе команда из Мейна "стейдж, добавь себе это дитя, и без вопросов" является грубейшим нарушением священной иерархии "дети не приказывают родителям, а только информируют их".
Если всякая второстепенная мелюзга будет изменять по своей прихоти родительские объекты, на приложении можно ставить крест.
Это и есть те "некоторые не столь очевидные архитектурные проблемы", о которых упоминает Aquahawk. Я бы сказал, очевидные и недопустимые.
Просто товарищи начинающие частенько не осознают терминологию, просто не знают как правильно сказать, а как сказать не надо))
В результате и сформировался такой слэнг, "добавить на стейдж", и все это повторяют повсеместно, вплоть до примеров кода(!), где бездумно пишут stage.addChild(...).
Хотят сказать "добавь на сцену", при этом под сценой подразумевая тоже не Scene, а Display List вообще.
При этом и слово "сцена" заменяют словом стейдж, подразумевая некое абстрактное вместилище дисплейных объектов.
Но оно не абстрактное. Стейдж это вовсе не стандартный DisplayObjectContainer, у него очень много своих нюансов и свое конкретное назначение, выходящее за рамки логики приложения.
Приложение не может пользоваться стейджем как своим ребенком в любом смысле. Это Приложение является ребенком Стейджа.
Соблюдайте иерархию, и вопрос потеряет смысл.
На счет стеджа, так глубоко не задумывался, хотя ничего на него не добавляю. Спасибо за разъяснение
__________________
Блог: http://devizgl.blogspot.com/

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:22.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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