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

Diestro 03.02.2010 01:42

Можно использовать класс GroupLoad библиотеки CASA

Tranki 03.02.2010 02:30

что я делаю не так?
Код AS3:

var loaded_foto:Array=new Array();
var pics:Loader;
for(var i=0;i<4;i++) {
 
photo_user='http...';
pics=new Loader;               
 
pics.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);         
pics.load(new URLRequest(photo_user));
 
function onLoaded(e:Event) {
    loaded_foto[e.target.url]=e.target.content;
 
                                }
 
}


Zebestov 03.02.2010 03:04

Код AS3:

// это надо прописать как свойство в самом вверху
// чтобы обеспечить видимость массива внутри класса
var loaded_foto:Array = [];
 
function photoLoader():void
{
      var photo_user:String;
      var pics:Loader;
      var i:int;
      for(i = 0; i < 4; i++)
      {
              photo_user = 'http...';
              pics = new Loader();               
 
              pics.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);         
              pics.load(new URLRequest(photo_user));
      }
}
 
function onLoaded(e:Event):void
{
      loaded_foto[e.target.url] = e.target.content;
 
      // и обязательно не забыть убрать слушатель
      // чтобы ненужный уже экземпляр Loader мог спокойно почить =)
      e.target.removeEventListener(Event.COMPLETE, onLoaded);
}

другими словами — не надо в цикле прописывать функцию-обработчик =) как я и написал — она одна на всех

Himerets 03.02.2010 12:03

Еще давно в голову пришла одна мысль, руки не доходили попробовать.
Интересно, в данном случае прокатит такое:

Код AS3:

private function imageLoadedHandler(e:Event):void
{
  imageLoaded = true;
}
 
private function procession():void
{
  for (var i:int = 0; i < c; i++)
  {
    //ждем загрузки
    while (!imageLoaded) {}
 
    //действуем))
    someAction();
  }
}

Или imageLoadedHandler не сможет выполниться, пока procession не закончится?

etc 03.02.2010 12:10

Himerets, среда однопоточная.

Tranki 03.02.2010 14:25

пишет Термин не определен и не имеет свойств,хотя все переменные определены..что это может быть?

Psycho Tiger 03.02.2010 20:51

Ну, наверное термин всё таки неопределён.

СлаваRa 03.02.2010 22:54

вклинюсь в тему, не проще ли, сделать свой класс для загрузки чего - либо, т.е. будет динамический класс, который будет создавать очередь загружаемого?

например:
передаем в класс линки того, что надо загрузить, функцию которая примет загруженное и имя очереди, ну как минимум, и этот класс последовательно грузит все, что стоит в данной очереди, далее след. очередь и т.д.,...

Tranki 04.02.2010 00:52

это строчка точно должна работать? потому что лаодед фото в конце концов остается пустой,а таргет урл и контент данные поступают нормально.
Код AS3:

loaded_foto[e.target.url] = e.target.content;


Psycho Tiger 04.02.2010 12:38

а loaded_foto у вас кто?


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

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