Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Вопрос по функциям и спрайтам (http://www.flasher.ru/forum/showthread.php?t=181381)

koljsch 22.06.2012 00:57

Вопрос по функциям и спрайтам
 
Как сделать массив спрайтов и каждому элементу массива прописать одну функцию?
И как далее узнать какой именно элемент массива вызвал эту функцию?

КорДум 22.06.2012 01:00

event.target
И используйте циклы )

koljsch 22.06.2012 01:05

event.target как я понял возвращает кто вызвал.
А массив спрайтов?
Т.е. если циклы, то что-то типа:
Код AS3:

for(i=0;i<=20;++i)
var container[i]:Sprite = new Sprite();

Правильно?

КорДум 22.06.2012 01:08

Код AS3:

var spriteList:Vector.<Sprite> = new <Sprite>[];
 
for (var i:uint = 0; i < 50; i++) {
    var sprite:Sprite = new Sprite();
    spriteList.push(sprite);
    // spriteList[i] = sprite;
}

Хм, почитайте Мука, который Колин, что ли...

koljsch 22.06.2012 01:10

ошибка при компиляции в
Код AS3:

var spriteList:Vector.<Sprite> = new <Sprite>[];


КорДум 22.06.2012 01:11

Какая ошибка? Я на коленке пишу, а на форуме нет ни автокомплита, ни компилятора.

Добавлено через 43 секунды
У меня все нормально.
Вектор появился только в 10 версии флеш плеера. Вы под нее компилите?

Добавлено через 3 минуты
Ну создайте просто массив тогда. Потому что я не знаю, где в FlashIDE версию переключать, я ей почти не пользуюсь.
Код AS3:

var spriteList:Array = [];


koljsch 22.06.2012 01:16

Вот и проблема, нет))
Блин, значит придется сделать большое количество спрайтов)))

КорДум 22.06.2012 01:16

Массив используйте.

koljsch 22.06.2012 01:19

Ну вопрос та в этом и был, как использовать массив из спрайтов)) Так получается все-таки как-то можно сделать его?

strangedk 22.06.2012 01:20

Код AS3:

var spriteList:Vector.<Sprite> = new Vector.<Sprite>();


koljsch 22.06.2012 01:21

Да я это понял, но делаю под 9 версию плеера

КорДум 22.06.2012 01:21

strangedk, разницы нет. Человек компилит под девятую версию, как я понял. А там либо полной записью пиши, либо короткой — все одно.
Цитата:

Ну вопрос та в этом и был, как использовать массив из спрайтов)) Так получается все-таки как-то можно сделать его?
А я выше что писал?

strangedk 22.06.2012 01:22

по моему вопрос звучит как "как создать массив" при чем не спрайтов, а вообще чего-либо.
посмотрите пожалуйста здесь: Array

КорДум 22.06.2012 01:27

И все-таки Мук очень даже не помешает.

koljsch 22.06.2012 01:45

strangedk
Цитата:

Как сделать массив спрайтов
-нет, Вы не правы, первое мое сообщение.
КорДум
Вы написали чтобы я использовал массив. Или Вы имели в виду обычный массив?

КорДум 22.06.2012 01:46

Сначала вектор, после того, как узнал версию плеера, сказал про обычный.

koljsch 22.06.2012 01:48

Ясно. Ну теперь нужно добить последнее)) Это event.target. Вот допустим я узнал объект, а как через event.target ему присвоить допустим те же X и Y?

КорДум 22.06.2012 01:50

Там корректнее будет event.currentTarget.
Те же, которые какие?

koljsch 22.06.2012 01:53

Все, я понял, просто подставить так event.currentTarget.x и присвоить))

garymar 22.06.2012 11:17

Код AS3:

var spriteList.<Sprite> = new Vector.<Sprite>();
 
for (var i:uint = 0; i < 50; i++) {
    var sprite:Sprite = new Sprite();
    spriteList.push(sprite);
}

"...и каждому элементу массива прописать одну функцию?..."
Функцию чего? Что она должна делать?

strangedk 22.06.2012 12:44

Цитата:

Сообщение от koljsch (Сообщение 1085627)
strangedk
-нет, Вы не правы, первое мое сообщение.

Не правы Вы. Потому что массив спрайтов делается точно так же как и массив любого другого типа.
Соответственно я могу утверждать что вы не знаете как использовать массивы в принципе.

nOobCrafter 22.06.2012 14:00

Код AS3:

var spriteList.<Sprite> = new Vector.<Sprite>();
 
for (var i:uint = 0; i < 50; i++) {
    var sprite:Sprite = new Sprite();
    sprite.addEventListener(MouseEvent.CLICK, onClickHandler);
    spriteList[i] = sprite;
}
 
function onClickHandler(event.MouseEvent):void {
trace("click:", event.currentTarget.name);
}


КорДум 22.06.2012 14:01

Людиии. 9 версия плеера, какой вектор?
Тем более уже все человек понял еще ночью.

strangedk 22.06.2012 14:01

Ребят, вы тему читаете? человеку нужен не вектор а массив.

Добавлено через 37 секунд
КорДум первее написал )


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

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