|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Цитата:
п.с. Принято писать названия переменных с маленькой буквы. А капсы использовать только для имен констант. |
|
|||||
[+1 13.12.12]
[++1 13.12.12] Регистрация: Aug 2012
Сообщений: 145
|
трейсы стоят, я просто их все стер.
|
|
|||||
[+1 13.12.12]
[++1 13.12.12] Регистрация: Aug 2012
Сообщений: 145
|
на
ошибка
|
|
|||||
Регистрация: Jan 2009
Сообщений: 1,651
|
Почему ты до сих пор не разделил эту строчку скажем так:
var r:int = int(Math.random() * BOXES.length); trace(r); var c:Class = BOXES[r]; trace (c); var BOXES_ITEM:MovieClip = new c() as MovieClip; В общем, я предполагаю, что один из "айтемов" в BOXES, не является именем класса.
__________________
мой пустой блог |
|
|||||
[+1 13.12.12]
[++1 13.12.12] Регистрация: Aug 2012
Сообщений: 145
|
на r он выводит рандомное число (как я понял от 0 до 4)
а дальше ошибка TypeError: Error #1034: Ошибка типа Coercion: невозможно преобразовать box4@31afe6d1 в Class. at ClearSniper_fla::Timeline_1/CLUB_TIMER() at flash.events::EventDispatcher/dispatchEventFunction() at flash.events::EventDispatcher/dispatchEvent() at flash.utils::Timer/tick() Цитата:
|
|
|||||
Регистрация: Jan 2009
Сообщений: 1,651
|
var boxes:Array/*of Class*/ = [box1, box2, box3, box4]; ... var r:int = int(Math.random() * BOXES.length); //получаем случайное число от 0 до BOXES.length-1 trace(r); var c:Class = BOXES[r]; //в BOXES хранятся ссылки на классы. Не экземпляры, а классы trace (c); var BOXES_ITEM:MovieClip = new c() as MovieClip; //создаем новый экземпляр класса, ссылка на который хранится в переменной c
__________________
мой пустой блог |
|
|||||
[+1 13.12.12]
[++1 13.12.12] Регистрация: Aug 2012
Сообщений: 145
|
даже не знаю что это
|
|
|||||
Регистрация: Jan 2009
Сообщений: 1,651
|
Ну это Flash->ActionScript Settings->галочка "Strict mode". Но это по сути не важно. Свое предположение об ошибке я уже высказал: "по этому адресу BOXES[r] у тебя неправильно написано имя класса, т.е. либо не класс, либо класс, но не MovieClip".
Добавлено через 5 минут При чем здесь flash professional. Да этот код исполнится даже в cs1. У тебя логическая ошибка в коде, вот и все.
__________________
мой пустой блог |
|
|||||
Цитата:
Если вам нужно достать элемент массива, класс или экземпляр, лучше выделите отдельную переменную. Будет намного понятнее о чем вообще идет речь. var index:int = int(Math.random() * BOXES.length); var item:MovieClip = BOXES[index] as MovieClip; И не видно этого потому, что всё написано в строчку. Добавлено через 59 секунд а, он у вас уже не экземпляр, а просто класс. короче ппц, разберитесь с кодом Если в массиве классы, тогда так:
__________________
adobe AS3 manual |
Часовой пояс GMT +4, время: 15:38. |
|
« Предыдущая тема | Следующая тема » |
|
|