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

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

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

Регистрация: Mar 2009
Адрес: Moscow
Сообщений: 469
Question Экземпляр класса не создается

Делаю галерею, в которой кнопки со ссылками на работы должны добавляться программно на этапе выполнения.
Чтобы многократно не повторять код, сделал обобщенную функцию внутри класса, которая вызывается по таймеру. При вызове функции каждый раз должна создаваться одна кнопка. Но вот доходит до создания экземпляра класса кнопки, как выскакивает ошибка:
1120: Access of undefined property SubBtn.
В библиотеке имеется 5 символов и каждый слинкован с автоматически создаваемым класом (SubBtn1, SubBtn2, SubBtn3, SubBtn4, SubBtn5).
Привожу код класса:
Код AS3:
package forpage {
	import flash.display.MovieClip;
	import flash.utils.Timer;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.events.TimerEvent;
 
	public class WorkGalary extends MovieClip {
 
		public var opened:Boolean;
		private var localTimer1:Timer;
		private var localTimer2:Timer;
		private var repeatCount:uint;
		private var subBtnNumbers:Array;
		private var subBtnX:Array;
		private var subBtnY:Array;
		private var index:uint = 0;
		private var subBtn:SubBtn;
		private var win:MovieClip;
 
		public function WorkGalary (winSymbol:MovieClip) {
			subBtnNumbers = [1, 2, 3, 4, 5];
			subBtnX = [70, 70, 70, 355, 725];
			subBtnY = [100, 130, 160, 100, 100];
			repeatCount = 5;
			opened = true;
			win = winSymbol;
			addChild (win);
			localTimer1 = new Timer (710, repeatCount);
			localTimer1.addEventListener(TimerEvent.TIMER, localTimer1Handler);
			localTimer1.start();
		}
 
		public function makeRew ():void {
			localTimer2 = new Timer (100, 1);
			localTimer2.addEventListener(TimerEvent.TIMER, localTimer2Handler);
			localTimer2.start();
			win.addEventListener (Event.ENTER_FRAME, goBack);
		}
 
		public function goBack (e:Event):void {
			if (win == null) {
				throw new Error ("Symbol not defined");
			};
			try {
			win.prevFrame ();
			if (win.currentFrame == 1) {
				win.removeEventListener (Event.ENTER_FRAME, goBack);
				opened = false;
				parent.removeChild (this);
				}
			}
			catch (errObject:Error) {
				trace ("The message is: " + errObject.message);
			};
		};
 
		private function localTimer1Handler (e:TimerEvent):void {
			addSubBtns(subBtnNumbers[index], subBtnX[index], subBtnY[index]);
			index++;
		};
 
		private function localTimer2Handler (e:TimerEvent):void {
			removeSubBtns();
		};
 
		private function addSubBtns (index, X, Y):void {
			var newIndex = index;
			var newX = X;
			var newY = Y;
			trace ("REACHED TIL HERE!!!");
			subBtn[newIndex] = new SubBtn[newIndex]
			subBtn[newIndex].x = newX;
			subBtn[newIndex].y = newY;
			addChild(subBtn[newIndex]);
		};
 
		private function removeSubBtns ():void {
		};
	}
}
С помощью трассировки удалось узнать, что ошибка возникает при выполнении директивы new SubBtn[newIndex].
Подскажите пожалуйсто, как правильно это реализовать.


Последний раз редактировалось Furinax; 18.10.2009 в 15:10.
Создать новую тему   Часовой пояс GMT +4, время: 12:57.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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