![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2008
Сообщений: 11
|
Вот,
как узнать в функции обработки события значение i? Массивы DATA и loader должны соответствовать по своим индексам. var loader:Array = new Array(); var DATA:Array=new Array(); var i:int=0; var req:URLRequest; for (i=0;i<100;i++) { req=new URLRequest("xxxxx"+i+"xx.xx"); loader[i]=new URLLoader(); loader[i].addEventListener(Event.COMPLETE, complete); loader[i].load(req); } function complete(ev:Event):void { //DATA[???]=event.target.data; // Как тут узнать значение i элемента массива, с которым произошло это событие? }
__________________
Выбрать микрозаймы онлайн. |
|
|||||
|
Регистрация: Jan 2008
Сообщений: 669
|
Ну как вариант расширить URLLoader свойством, в котором сохранять значение id.
package { import flash.net.URLLoader; import flash.net.URLRequest; public class MyLoader extends URLLoader { public var id:int; public function MyLoader(request:URLRequest = null) { super(request); } } } var loader:Array = new Array(); var i:int=0; var req:URLRequest; for (i=0;i<100;i++) { req=new URLRequest("xxxxx"+i+"xx.xx"); loader[i]=new MyLoader(); loader[i].id = i; loader[i].addEventListener(Event.COMPLETE, complete); loader[i].load(req); } function complete(ev:Event):void { trace((ev.target as MyLoader).id); } |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Зачем вам вообще массив DATA?
|
|
|||||
|
так наверно лучше
var loader:Array = new Array();
var DATA:Array=new Array();
var i:int=0;
var req:URLRequest;
i=0
req=new URLRequest("xxxxx"+i+"xx.xx");
loader[i]=new URLLoader();
loader[i].addEventListener(Event.COMPLETE, complete);
loader[i].load(req);
i++;
function complete(ev:Event):void {
if (i<100){
//DATA[???]=event.target.data;
// Как тут узнать значение i элемента массива, с которым произошло это событие?
req=new URLRequest("xxxxx"+i+"xx.xx");
loader[i]=new URLLoader();
loader[i].addEventListener(Event.COMPLETE, complete);
loader[i].load(req);
i++;
}
}
Сначала один, потом второй ... ну и так далее по очереди. А у вас сразу 100 почти одновременно (с разничей в микронаносекунды тактовой частоты процессора) и не загрузятся вообще. А так может быть до первого не найденного файла. Последний раз редактировалось Alex Lexcuk; 31.01.2009 в 21:17. |
|
|||||
|
стервочка (я мужик)
|
Волгоградец, это Вы всегда вместо indexOf используете?
Добавлено через 7 минут тут даже ещё смешнее: function complete(ev:Event):void { // каждый раз запрашиваем length, что бы цикл подольше работал. и ещё тут очень необходима дробная часть i, вдруг итерация будет дробной? for (var i:Number = 0; i < loader.length; i ++){ //тут, чтобы сравнить 2 объекта, мы зачем-то сперва их конвертируем, и потом пытаемся сравнить 2 объекта, а не пытаемся выяснить тот ли это объект. нам же недостаточно строгого сравнения. причём откуда-то берётся некий объект "e". if (URLLoader(e.target) == URLLoader(loader[i])) { // а тут уже появляется некий event. причём тут нам приведение типов нафиг не надо. DATA[i] = event.target.data; } } } Последний раз редактировалось BlooDHounD; 31.01.2009 в 21:55. |
|
|||||
|
4AM Games
|
Не совсем понятен смысл всего этого, почему бы не отслеживать сами данные, зачем плодить лоадеры и сохранять ссылки на них?
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Если есть массив loader, за каким хреном вам массив DATA? Получить данные можно и из массива loader всё по тем же индексам.
|
|
|||||
|
Регистрация: Oct 2008
Сообщений: 11
|
то просто короткий пример был
DATA у меня может быть массив TextField-ов или Мувиклипов, а Лоадером я загружаю данные для них (например чтобы вставить в соответствующие TextFieldы). Загружать приходится много и все сразу. Alex Lexcuk, можно одновременно грузить сколько угодно данных, они все корректно загрузятся. Но последовательная загрузка хороша тем что не будет тормозов ![]()
__________________
Выбрать микрозаймы онлайн. Последний раз редактировалось Vikar; 03.02.2009 в 12:46. |
|
|||||
|
стервочка (я мужик)
|
Vikar, неа. одновременно бровзеры разрешают открывать до 2-4 соединение. если грузится будет много, то они тупо порвутся по таймаутам.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 16:13. |
|
|
« Предыдущая тема | Следующая тема » |
|
|