PDA

Просмотр полной версии : массив Sprite со ссылками


Arsenium
31.05.2007, 18:24
Есть массив pic, где каждый элемент является объектом типа Sprite.
Как сделать каждый из объектов ссылкой на какой-то url[i]?
Если я напишу в цикле по i (i от 0 до 9):
pic[i].addEventListener(MouseEvent.CLICK, function (event:MouseEvent):void {navigateToURL(new URLRequest(pic[i].href))});

то при клике на каждом объкте из массива flash пытается перейти по несуществующему url pic[10].href

Как сделать так, чтобы номер i cсылки запоминался для каждого addEventListener?

etc
31.05.2007, 18:25
Если по правильному, то запихнуть в массив наследников Sprite, с реализованным обработчиком нажатия и свойством-ссылкой.

Dendroid
01.06.2007, 11:30
Поменять спрайты на мувиклипы (динамический класс).
В цикле:
pic[i].n = i;
pic[i].addEventListener(MouseEvent.CLICK, function (event:MouseEvent):void {navigateToURL(new URLRequest(pic[this.n].href))});
Статичные классы - это, конечно, строго и круто, но за статичные Loader и LoaderContext поубивал бы индийцев... :)

etc
01.06.2007, 12:36
Сделай свои — наследники Loader :)

BlooDHounD
01.06.2007, 13:56
pic[i].n = i;
pic[i].addEventListener(MouseEvent.CLICK, function (event:MouseEvent):void {navigateToURL(new URLRequest(pic[this.n].href))});Бугага :) и чем в этой функе является this ?

pic[i].n = i;
pic[i].addEventListener(MouseEvent.CLICK, function (event:MouseEvent):void {navigateToURL(new URLRequest(pic[(event.target as MovieClip).n].href))});

Dendroid
01.06.2007, 14:13
Бугага :) и чем в этой функе является this ?

pic[i].n = i;
pic[i].addEventListener(MouseEvent.CLICK, function (event:MouseEvent):void {navigateToURL(new URLRequest(pic[(event.target as MovieClip).n].href))});
This в данном случае передавал основную мысль. :D
Вы правильно поняли. :)

2etc: Ага, часто использую наследника Loader, который всего лишь добавляет одно слово dynamic, а c LoaderContext как? :)

etc
01.06.2007, 14:19
А он что, final?

Dendroid
01.06.2007, 14:24
Ну нет вроде, но не я же его создаю. Куда писать-то new myLoaderContext(), когда надо просто загрузить пикчу? :)

etc
01.06.2007, 14:43
Видимо я чего-то не допонял… ну да ладно.