Массив обьектов.
|
|
ggman | Дата: Пятница, 04 Ноября 2011, 01:11 | Сообщение # 1 |
постоянный участник
Сейчас нет на сайте
| Помогите пожалуйста разобраться.
Создаю мувиклип, в свойствах прописываю ему клас, например, "Monk". Тепрь мне нужно создать массив этих обьектов. Я делаю это так:
Code var Monks:Array = new Array(Monk); Monks[0].x=100; Monks[0].y=100; Monks[1].x=200; Monks[1].y=200;
но при запуске в указаных точках пусто. Пожалуйста подскажите как правильно создать массив своих обьектов и правильно с ними работать. Заранее спасибо.
|
|
| |
Ghost_in_the_shell | Дата: Пятница, 04 Ноября 2011, 06:21 | Сообщение # 2 |
участник
Сейчас нет на сайте
| может ты addChild() забыл?
|
|
| |
noTformaT | Дата: Пятница, 04 Ноября 2011, 10:21 | Сообщение # 3 |
Ukrainian independent game developer
Сейчас нет на сайте
| Quote (ggman) var Monks:Array = new Array(Monk); Monks[0].x=100; Monks[0].y=100; Monks[1].x=200; Monks[1].y=200; если Monk, это класс, то почему ты его передаешь в конструктор Array???
var Monks:Array = new Array();//создаем новый массив var myMonk:Monk = new Monk();//создаем объект класса "Monk" Monks.push(myMonks);//добавляем myMonk в массив Monks Добавлено (04.11.2011, 10:21) --------------------------------------------- и теперь чтобы получить объект myMonk обратно:
var tempMonk = Monks[0] as Monk; //получаем первый элемент в массиве Monks и приводим его к классу Monk;
@noTformaT
|
|
| |
ggman | Дата: Пятница, 04 Ноября 2011, 13:02 | Сообщение # 4 |
постоянный участник
Сейчас нет на сайте
| Ага, более мение понятно, а чтобы Monks[0] записать в Tween. вместо имени обьекта прописывать tempMonk, я правильно понял? ПРостокак-то все это сложно. Напрямую с элементом масива работать, я так понял нельзя?
|
|
| |
noTformaT | Дата: Пятница, 04 Ноября 2011, 13:16 | Сообщение # 5 |
Ukrainian independent game developer
Сейчас нет на сайте
| Quote (ggman) Ага, более мение понятно, а чтобы Monks[0] записать в Tween. вместо имени обьекта прописывать tempMonk, я правильно понял? ПРостокак-то все это сложно. Напрямую с элементом масива работать, я так понял нельзя? можешь и так использовать, просто приводить типы данных будет сам плеер в райтайме, а так статически указан тип.
@noTformaT
|
|
| |
ggman | Дата: Пятница, 04 Ноября 2011, 19:00 | Сообщение # 6 |
постоянный участник
Сейчас нет на сайте
| Ввел все вроди правильно
Code var pasasgirs:Array = new Array(); // это массив мувиклипа var MYpasasgir:pasasgir = new pasasgir(); pasasgirs.push(MYpasasgir);
var tempPasasgir = pasasgirs[0] as pasasgir;
tempPasasgir.x=100; tempPasasgir.y=100;
, по теперь вообще выдает ошибку
1046: Тип не найден или не является константой времени компиляции: pasasgir.
Может я не правильно что-то делаю. Я создаю клас заходя в свойства мувиклипа и в стройче "Клас" раздела "связывание" пишу pasagir. Все правильно, или делать надо не так?
|
|
| |
|
ggman | Дата: Пятница, 04 Ноября 2011, 19:26 | Сообщение # 8 |
постоянный участник
Сейчас нет на сайте
| Хм, все так и заполнено же вроде? Или в моем случае надо по другому заполнять?
Массив мне нужен так-как пасажиров будет много, а облаков с которыми они сталкиваются еще больше, и нужно динамически просчитывать взаимодействие между ними. Поэтому я хочу сделать два массива и запустить цыкл, который будет переберать массив и проверять кто с кем столкнулся.
|
|
| |
noTformaT | Дата: Пятница, 04 Ноября 2011, 19:28 | Сообщение # 9 |
Ukrainian independent game developer
Сейчас нет на сайте
| ggman, у тебя в pasasgirs в начале стоят пробелы????
@noTformaT
|
|
| |
ggman | Дата: Пятница, 04 Ноября 2011, 19:40 | Сообщение # 10 |
постоянный участник
Сейчас нет на сайте
| ЭЭ... не совсем понял где? В стоках названияи класса - нет не стоят
|
|
| |
noTformaT | Дата: Пятница, 04 Ноября 2011, 19:42 | Сообщение # 11 |
Ukrainian independent game developer
Сейчас нет на сайте
| ggman, в "свойствах клипа"
@noTformaT
|
|
| |
ggman | Дата: Пятница, 04 Ноября 2011, 19:53 | Сообщение # 12 |
постоянный участник
Сейчас нет на сайте
| В свойстах ролика инбоксы "Имя" "Класс" - пробелы не стоят.
|
|
| |
Fenrire | Дата: Суббота, 05 Ноября 2011, 12:51 | Сообщение # 13 |
почетный гость
Сейчас нет на сайте
| А клипы уже лежат на сцене? Или ты их добавляешь динамически? Пока что ты просто создал экземпляр класса и пихнул его в массив. Может сперва так сделать?
var pasasgirs:Array = new Array(); var MYpasasgir:pasasgir = new pasasgir();
addChild(MYpasasgir); //сперва добавляем на сцену
pasasgirs.push(MYpasasgir); //потом в массив
Или циклом к примеру, если у тебя их много:
for(var i:int = 0; i < 10; i ++) //скок надо столько и ставим { addChild(MYpasasgir); pasasgirs.push(MYpasasgir); }
и потом так же циклом обращаешься к клипам через массив
for( var k:int; k < pasasgirs.length; k++) { //выполняем действия с pasasgirs[k] }
Если я правильно понял вопрос, то по идее должно работать)
Сообщение отредактировал Fenrire - Суббота, 05 Ноября 2011, 13:04 |
|
| |
ggman | Дата: Воскресенье, 06 Ноября 2011, 00:44 | Сообщение # 14 |
постоянный участник
Сейчас нет на сайте
| Я не понимаю, какая-то ерунда. Включил комп, зашел в чистый Создал мувиклип, зашел в свойства, заполнил так:
Затем написал код:
Code var pasasgirs:Array = new Array(); var MYpasasgir:pasasgir = new pasasgir();
addChild(MYpasasgir); //сперва добавляем на сцену
pasasgirs.push(MYpasasgir); //потом в массив
var tempPasasgir = pasasgirs[0] as pasasgir;
tempPasasgir.x=100; tempPasasgir.y=100;
Но, при компиляции получаю ошибки:
НУ ЧТОЯ НЕПРАВИЛЬНО ДЕЛАЮ????
|
|
| |
Fenrire | Дата: Воскресенье, 06 Ноября 2011, 18:20 | Сообщение # 15 |
почетный гость
Сейчас нет на сайте
| давай исходник чтоли, поглядим
|
|
| |
ggman | Дата: Понедельник, 07 Ноября 2011, 00:06 | Сообщение # 16 |
постоянный участник
Сейчас нет на сайте
| Качайте, смотрите, помогите)))
|
|
| |
ezheka | Дата: Понедельник, 07 Ноября 2011, 01:49 | Сообщение # 17 |
почетный гость
Сейчас нет на сайте
| не указал что твой пассажир - клип, и не прописал в импорте клипы
текущее
|
|
| |
Fenrire | Дата: Понедельник, 07 Ноября 2011, 10:00 | Сообщение # 18 |
почетный гость
Сейчас нет на сайте
| Мде... Не помню кто, но кто-то мне сказал: инстанс имена с маленькой, классы с Большой буквы. поменяй название класса у клипа, чтобы начиналось с заглавной. потом в коде поправь обращение к классу тоже на заглавные:
var pasasgirs:Array = new Array(); var MYpasasgir:Pasagir = new Pasagir();
addChild(MYpasasgir); //сперва добавляем на сцену
pasasgirs.push(MYpasasgir); //потом в массив
var tempPasasgir = pasasgirs[0] as Pasagir;
tempPasasgir.x=100; tempPasasgir.y=100;
и будет тебе счастье)
|
|
| |
noTformaT | Дата: Понедельник, 07 Ноября 2011, 11:25 | Сообщение # 19 |
Ukrainian independent game developer
Сейчас нет на сайте
| ggman, ты случайно не на ас2 пишеш?
Quote (Fenrire) Не помню кто, но кто-то мне сказал: инстанс имена с маленькой, классы с Большой буквы. поменяй название класса у клипа, чтобы начиналось с заглавной. потом в коде поправь обращение к классу тоже на заглавные: мммм, это официальное оформление адоб диктует такие правила, но на самом деле это не существенно
@noTformaT
|
|
| |
ggman | Дата: Понедельник, 07 Ноября 2011, 11:45 | Сообщение # 20 |
постоянный участник
Сейчас нет на сайте
| as3
|
|
| |