Форум 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=144766)

Korben 20.09.2010 19:25

Передача параметров в функцию...
 
привет всем!

начал недавно изучать AS3
вот код:
Код AS3:

private function LoadPic():void
{
        var l:Loader;
        for ( var idx:uint = 0; idx < 2; idx++)
        {
                l = new Loader();
                l.load(new URLRequest(URL + k.f_alpha));
                l.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event):void { onLoadPic(e, idx, 0); } );
 
                l = new Loader();
                l.load(new URLRequest(URL + k.f_betta));
                l.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event):void { onLoadPic(e, idx, 2); } );
        }
}
 
private function onLoadPic(event:Event, idx:uint, num:uint):void
{
        trace(idx, num);
}

собственно проблема - onLoadPic вызывается всегда с параметром idx == 2, приблизительно понял в чем проблема

и лазанье по форуму практически ничего не дало - как по другому можно решить момент с передачей в функцию назначенную на Event.COMPLETE свои параметры?

КорДум 20.09.2010 19:28

Пробейте свой вопрос по поиску - таких тем тут штук 10 точно, все об одном и том же. Когда же уже прикрепят тему с ответами в этой ветке...

Добавлено через 1 минуту
http://www.flasher.ru/forum/search.php?searchid=2233761
Вон, их тут вагон, выбирайте на свой вкус.

Korben 20.09.2010 19:36

Цитата:

Сообщение от КорДум (Сообщение 937369)
Пробейте свой вопрос по поиску - таких тем тут штук 10 точно, все об одном и том же. Когда же уже прикрепят тему с ответами в этой ветке...

Добавлено через 1 минуту
http://www.flasher.ru/forum/search.php?searchid=2233761
Вон, их тут вагон, выбирайте на свой вкус.

я уже сказал что лазанье по форуму ничего не дало
даже по результатам данной ссылки на 1 странице нет ни одного верного ответа

leofit 20.09.2010 19:44

http://www.flasher.ru/forum/blog.php?b=239

Korben 20.09.2010 19:55

Цитата:

Сообщение от leofit (Сообщение 937378)

не подходит - тут описаны случаи для обработки заведомо существующих объектов
(в слушателях они перечисляются), у меня получатель массив и передать индекс массива(этого достаточно) в слушатель не получается.

я забыл добавить - грузятся картинки(png) в массив структур.

leofit 20.09.2010 20:07

Эй эй, Вы же одну и туже переменную перетираете в цикле, и у Вас отрабатывает только последний результат. У Вас проблема не в передаче данных, а в логике приложения.

Создайте массив, в своем цикле создавайте переменные загрузчика, кладите их в массив и вешайте слушателей на них.

-De- 20.09.2010 20:08

У вас заведомо существующие обьекты - это лоадеры или их contentLoaderInfo

Korben 20.09.2010 20:13

Цитата:

Сообщение от -De- (Сообщение 937386)
У вас заведомо существующие обьекты - это лоадеры или их contentLoaderInfo

ни один из лоадеров не знает в какой именно элемент массива надо занести то что он получил
а
contentLoaderInfo : LoaderInfo
[только для чтения] Возвращает объект LoaderInfo, соответствующий загружаемому объекту.

так-что если даже захочешь в него что-нибудь вписать - не сможешь

Добавлено через 3 минуты
Попробовал найти выход с помощью наследника Loader-a
создал нечто (может конечно не правильно)
Код AS3:

public class exLoader extends Loader
{
        public var myInt:uint;
        public var myObject:Object;
        public function exLoader()
        {
        }
}

и привел к стандартному виду функцию слушателя
Код AS3:

private function onLoadPic(event:Event):void
{
        var exLoad:exLoader = (event.target as exLoader);

в exLoad сидит null, хотя в event.target однозначно exLoader

может я тут че не правильно сделал?

leofit 20.09.2010 20:18

2 Korben:
У Вас очень сильные пробелы в теории, практике и демагогии ) Исправляйте цикл и читайте книги

Korben 20.09.2010 20:21

Цитата:

Сообщение от leofit (Сообщение 937391)
2 Korben:
У Вас очень сильные пробелы в теории, практике и демагогии ) Исправляйте цикл и читайте книги

данное выражение не уместно.

а цикл - урезан принципиально, - он в 10 раз больше, да и переменная k в оригинальном тексте имеет место быть, но к сути проблемы не имеет никакого отношения.

Добавлено через 7 минут
все, разобрался сам, ошибся в обращении
Код AS3:

private function onLoadPic(event:Event):void
{
        var exLoad:exLoader = (event.target.loader as exLoader);

но аналогичных решений я еще тут не встречал(видимо плохо искал)

тему можно закрывать.


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

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