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

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

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

Регистрация: Feb 2011
Адрес: Ленинград
Сообщений: 20
По умолчанию добавить объект на сцену из дочернего класса.

На главной сцене MovieClip, который ссылается на класс src.Main_mc Если добавлять объекты на сцену из этого класса - всё прекрасно, addChild() срабатывает без проблем. А как добавить объект на сцену из дочернего от Main_mc класса? Код:
Код AS3:
package src {
 
               public class Animation extends Main_mc {
 
               /* ---- */
 
                public function Animation():void {
 
			addEventListener(Event.ENTER_FRAME, animFunction1);
                }
 
                public function animFunction1(e:Event):void {
 
		           var spr:Sprite = new Sprite();
			var mc:MovieClip = new MovieClip();
			mc.graphics.beginFill(0x383838,1.0);
			mc.graphics.lineStyle(1,0xFFD700,1.0,false,LineScaleMode.NORMAL,CapsStyle.SQUARE,JointStyle.MITER,3);
			mc.graphics.drawRect(0, 0, 100, 100);
			spr.addChild(mc);
			stage.addChild(spr);
                }
}
Выдаёт ошибку:TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at src::Animation/animFunction1()

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

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Не видя класса Main_mc, можно предположить, что ругается он на stage. Попробуйте дождаться его появления.

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

Регистрация: Feb 2011
Адрес: Ленинград
Сообщений: 20
Не выходит. Убрал слушатель события в функции, чтобы она не вызывалась тыщу раз, всё равно всё то же.
Код AS3:
 public function animFunction1(e:Event):void {
 
                removeEventListener(Event.ENTER_FRAME, animFunction1)

Старый 28.02.2011, 16:30
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 4  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Вы слышытие что вам говорят? Event.ADDED_TO_STAGE

Старый 28.02.2011, 16:52
zoo вне форума Посмотреть профиль Отправить личное сообщение для zoo Найти все сообщения от zoo
  № 5  
Ответить с цитированием
zoo
 
Аватар для zoo

Регистрация: Feb 2011
Адрес: Ленинград
Сообщений: 20
Я вижу что мне написали, понял по-своему.
добавил слушатель:
Код AS3:
		public function animFunction1(e:Event):void {
 
			removeEventListener(Event.ENTER_FRAME, animFunction1)
			var spr:Sprite = new Sprite();
			var mc:MovieClip = new MovieClip;
			mc.x = 10;
			mc.y = 10;
			mc.graphics.beginFill(0x383838,1.0);
			mc.graphics.lineStyle(1,0xFFD700,1.0,false,LineScaleMode.NORMAL,CapsStyle.SQUARE,JointStyle.MITER,3);
			mc.graphics.drawRect(0, 0, 100, 100);
			spr.addChild(mc);
			stage.addChild(spr);
			spr.addEventListener(Event.ADDED_TO_STAGE, function fn() { trace('aa'); } );
Всё то же..

Старый 28.02.2011, 17:24
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 6  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
понимайте по другому
Код AS3:
package src {
 
            public class Animation extends Main_mc {
 
            public function Animation():void {
				addEventListener(Event.ADDED_TO_STAGE, animFunction1);
 
            }
 
 
            public function animFunction1(e:Event):void {
                      removeEventListener(Event.ADDED_TO_STAGE, animFunction1);
		        var spr:Sprite = new Sprite();
				var mc:MovieClip = new MovieClip();
				mc.graphics.beginFill(0x383838,1.0);
				mc.graphics.lineStyle(1,0xFFD700,1.0,false,LineScaleMode.NORMAL,CapsStyle.SQUARE,JointStyle.MITER,3);
				mc.graphics.drawRect(0, 0, 100, 100);
				spr.addChild(mc);
				stage.addChild(spr);
                }
}
}
Только не понятно - зачем EnterFrame?
__________________
Отряд Котовскага


Последний раз редактировалось Котяра; 28.02.2011 в 17:28.
Старый 28.02.2011, 20:05
zoo вне форума Посмотреть профиль Отправить личное сообщение для zoo Найти все сообщения от zoo
  № 7  
Ответить с цитированием
zoo
 
Аватар для zoo

Регистрация: Feb 2011
Адрес: Ленинград
Сообщений: 20
Цитата:
Только не понятно - зачем EnterFrame?
Функция вызывалась сразу после вызова конструктора, оттого и EnterFrame.

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

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

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


 


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


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