Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.02.2008, 15:58
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 1  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Question пакетная загрузка bitmap

Делаю следующую вещь:
Код:
for (var i = 0; i < _count; i++)			
{
	var container:MovieClip = _root.attachMovie("movie1","_g" + i, getNextHighestDepth(),{_x: random(Stage.width), _y:random(Stage.height)});
	var tmpImage:MovieClip = _root.createEmptyMovieClip (container._name + "tmpImage", 0);
	container.mcLoader = new MovieClipLoader();
	container.listener = new Object();
	container.listener._path = container;
	container.mcLoader.addListener(container.listener);
	container.listener.onLoadInit = function(mc:MovieClip) 
	{
		var tmp = _root[this._path._name + "tmpImage"];
		var __bmp:BitmapData = null;
		__bmp.dispose ();
		__bmp = new BitmapData (tmp._width, tmp._height, true, 0x0);
		__bmp.draw (tmp);
		this._path.foto.attachBitmap (__bmp, 0, null, true);
	}
	container.mcLoader.loadClip("http://????/" + i + ".jpg",_root[container._name + "tmpImage"]);
}
Проблема в том что onLoadInit выполняется только для последней итерации цикла, в чем тут может быть дело?


Последний раз редактировалось mre; 11.02.2008 в 16:00.
Старый 11.02.2008, 16:16
Molecula вне форума Посмотреть профиль Отправить личное сообщение для Molecula Найти все сообщения от Molecula
  № 2  
Ответить с цитированием
Molecula
 
Аватар для Molecula

Регистрация: Apr 2007
Сообщений: 1,369
Вот это уберите из цикла:
Код:
container.mcLoader = new MovieClipLoader();
container.listener = new Object();
Это не нужно:
Код:
var __bmp:BitmapData = null;
Это что такое?:
Код:
container.listener._path = container;
Уберите вот это из цикла:
Код:
container.mcLoader.loadClip("http://????/" + i + ".jpg",_root[container._name + "tmpImage"]);
Вам цикл не нужен, в onLoadComplete делаете проверку на параметр, и если он меньше _count, обращаетесь к loadClip(...)
__________________
john

Старый 11.02.2008, 16:32
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 3  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
А почему цикл не нужен, я в цикле прохожусь по xml, и вытаскиваю из нее ссылки к фотографиям, и для каждой создаю экземпляр container:MovieClip = _root.attachMovie
я просто здесь упростил код, чтобы нагляднее было.

Вот полный код
Код:
	myXml = new XML();
    myXml.ignoreWhite = true;
    myXml.onLoad = parseMe;
    myXml.load("http://???/index.php");
	var galleryes = [];
    function parseMe() 
	{
		var tmp = this.firstChild;
		for (var i = 0; i < tmp.childNodes.length; i++)
		{	
			if (tmp.childNodes[i].nodeName == 'gallery')
			{
				var gallery = tmp.childNodes[i];
				_root.galleryes[i] = [];
				for (var j = 0; j < gallery.childNodes.length; j++)
				{
					var item = gallery.childNodes[j];
					var _id = item.attributes.id;
					_root.galleryes[i][j] = _id;
					var _title = item.childNodes[0].firstChild.nodeValue;
					var _desc = item.childNodes[1].firstChild.nodeValue;
					var _dir = item.childNodes[2].firstChild.nodeValue;
					var _file = item.childNodes[3].firstChild.nodeValue;
					if (_dir == 0)
						_dir = 'container';
					else
						_dir = 'container2';
					var container:MovieClip = _root.attachMovie(_dir,"_g" + i + "_a" + _id, getNextHighestDepth(),{_x: random(Stage.width), _y:random(Stage.height)});
					var tmpImage = _root.createEmptyMovieClip("tmpImage", 0);
					var mcLoader = new MovieClipLoader();
					var listener = new Object();
					listener._path = container;
					var mcLoader:MovieClipLoader = new MovieClipLoader();
					mcLoader.addListener(listener);
					mcLoader.loadClip(_file,tmpImage);
					listener.onLoadInit = function (target_mc:MovieClip) 
					{
						var __bmp:BitmapData = null;
						__bmp = new BitmapData (target_mc._width, target_mc._height, true, 0x0);
						__bmp.draw(target_mc);
						this._path.foto.attachBitmap(__bmp,this._path.foto.getNextHighestDepth(), null, true);
					}
				}
			}
		}
	}
Просто объясните почему onLoadInit срабатывает только для последней итерации цикла и если можете предложите варианты решения проблемы, а там я уже самподумаю, а то не могу понять в чем дело.


Последний раз редактировалось iNils; 11.02.2008 в 18:51.
Создать новую тему Ответ Часовой пояс GMT +4, время: 01:49.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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