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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.01.2012, 00:20
nitratus вне форума Посмотреть профиль Отправить личное сообщение для nitratus Найти все сообщения от nitratus
  № 1  
Ответить с цитированием
nitratus

Регистрация: Dec 2011
Сообщений: 13
По умолчанию Мувик добавляет на сцену другой мувик

Вбил в поиске "мувик", посмотрел 3 страницы результатов, нужного не нашел.
Как сделать чтобы мувик добавлял на основную сцену другой мувик?
Это класс гарб1, он должен добавлять на сцену гарб2.
Код AS3:
package {
 
 import flash.display.MovieClip;
 
 public class garb1 extends MovieClip {
 public function garb1 () {
 
 this.graphics.beginFill(0); 
 this.graphics.drawRect(10, 20, 13, 14);
 
 parent.addChild(new garb2());
 }
 }
}
В стейдже в первом кадре пишу:
Код AS3:
addChild (new garb1());
выдает ошибку
Код:
Не удается вызвать свойство или метод со ссылкой на объект "null".
	at garb1()
	at _fla::MainTimeline/frame1()
Сам по себе гарб2 добавляется без проблем, и если в гарбе 1-ом убрать строчку, где он пытается добавить гарб 2, то гарб1 добавляется (рисуется черный квадратик)

Старый 22.01.2012, 00:26
Stitch512 вне форума Посмотреть профиль Отправить личное сообщение для Stitch512 Найти все сообщения от Stitch512
  № 2  
Ответить с цитированием
Stitch512

Регистрация: Nov 2010
Сообщений: 150
Код AS3:
parent.addChild(new garb2());
в конструкторе parent еще нет, он появится после
Код AS3:
addChild (new garb1());
.
Это действие нужно делать по событию ADDED_TO_STAGE. А вообще, нехорошая конструкция, так делать некошерно.

Старый 22.01.2012, 00:37
nitratus вне форума Посмотреть профиль Отправить личное сообщение для nitratus Найти все сообщения от nitratus
  № 3  
Ответить с цитированием
nitratus

Регистрация: Dec 2011
Сообщений: 13
Спасибо, никогда бы не догадался!
А почему нехорошая? Как тогда делают?

Старый 22.01.2012, 00:39
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 4  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
Вы бы лучше описали задачу\проблему, и вот тогда, может быть, Вам бы помогли прийти к верной реализации.

Цитата:
А почему нехорошая? Как тогда делают?
А почему у вас дети добавляют родителям детей?
__________________
местонахождение

Старый 22.01.2012, 00:48
Stitch512 вне форума Посмотреть профиль Отправить личное сообщение для Stitch512 Найти все сообщения от Stitch512
  № 5  
Ответить с цитированием
Stitch512

Регистрация: Nov 2010
Сообщений: 150
Код AS3:
addChild (new garb1());
addChild (new garb2());
Ну, хотя бы, почему вот так не зделать в кадре.
И соответственно
Код AS3:
parent.addChild(new garb2());
убрать из конструктора


Последний раз редактировалось Stitch512; 22.01.2012 в 00:52.
Старый 22.01.2012, 00:57
nitratus вне форума Посмотреть профиль Отправить личное сообщение для nitratus Найти все сообщения от nitratus
  № 6  
Ответить с цитированием
nitratus

Регистрация: Dec 2011
Сообщений: 13
если у меня много штук габр1, и нужно добавлять габр 2 когда с габр1 что-то происходит, то удобнее отследить это событие изнутри габр1. Если добавлять габр2 из основного кода, то нужно будет постоянно обходить все габр1. А вдруг у меня появится ещё несколько штук габр1? Тогда нужно сделать обход похитрее.
Не говоря уже о том, что изнутри габр1 удобнее задать параметры для габр2

Старый 22.01.2012, 01:05
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 7  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
а отправить событие из вашего "габр1" и по событию добавить "габр2" никак?
__________________
местонахождение

Старый 22.01.2012, 01:40
Stitch512 вне форума Посмотреть профиль Отправить личное сообщение для Stitch512 Найти все сообщения от Stitch512
  № 8  
Ответить с цитированием
Stitch512

Регистрация: Nov 2010
Сообщений: 150
а почему тогда "габр2" не зделать чайлдом "габр1"

Старый 22.01.2012, 02:05
nitratus вне форума Посмотреть профиль Отправить личное сообщение для nitratus Найти все сообщения от nitratus
  № 9  
Ответить с цитированием
nitratus

Регистрация: Dec 2011
Сообщений: 13
Stitch512,
по тому что "гарб1" может удалится.

СлаваRa,
гарбов первых много, и в зависимости от параметров "родительского" гарба1 надо чтоб у гарба2 были какие-то соответствующие параметры. Я не знаю как вместе с событием передать все эти параметры, и по-моему в этом случае это чуть ли не извращение по сравнению с созданием гарба2 изнутри гарба1.

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

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
Цитата:
и нужно добавлять габр2 когда с габр1 что-то происходит
Цитата:
и в зависимости от параметров "родительского" гарба1
если верна вторая цитата, то габр1 никак не влияет на "появление" габр2, за всех отвечает родительский класс
__________________
местонахождение

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

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

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


 


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


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