Просмотр полной версии : Загрузка jpg-картинки через URLLoader
Jarproger
10.03.2011, 11:47
Я подгружаю jpg-картинку через URLLoader. Можно было использовать просто Loader, но мне кажеться, что URLLoader более универсальный. Подгружаю, вроде byteLoaded=byteTotal, всё ок, но data=undefined... в чём ошибка?
Класс URLLoader загружает данные с URL-адреса в виде текста, двоичных данных или переменных в кодировке URLКласс Loader используется для загрузки SWF-файлов либо файлов изображений (JPG, PNG или GIF).Не понимаю резон использовать URLLoader для загрузки JPG. Может быть URLLoader просто не предполагает загрузку картинок?
Добавлено через 4 минуты
Ведь, по-моему, все равно вам придется использовать Loader.loadbytes() для превращения, полученного с помощью URLLoader, массива байт в картинку.
cleptoman
10.03.2011, 13:00
реквесту датаФормат BINARY попробуйте задать. потом, как сказали выше все равно придется грузить в лоадер, если хотите отобразить вашу картинку.
Jarproger
10.03.2011, 13:07
Просто я хочу универсальный загрузчик написать, который грузит и XML и картинки
Добавлено через 31 секунду
И 3ds-модели))
3p.station
10.03.2011, 13:27
Лучше напишите несколько лоадеров для различных целей - как минимум код будет читабльнее ...
Jarproger
10.03.2011, 13:46
var tempLoader:Loader = new Loader();
tempLoader.loadBytes(loader.data);
trace(tempLoader.content);
И выводит "null"
Хотя loader загрузил png-картинку, точно завершил загрузку и бинари-массив есть
Вы считаете, что загрузка происходит мгновенно?
Подписывайтесь на события окончания загрузки лоадеров, и работайте с данными тогда, когда они загрузятся.
package
{
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
public class TestProject extends Sprite
{
private var urlLoader:URLLoader;
private var loader:Loader;
public function TestProject() {
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(event:Event = null):void {
removeEventListener(Event.ADDED_TO_STAGE, init);
urlLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
urlLoader.addEventListener(Event.COMPLETE, urlLoaderCompleteHandler);
urlLoader.load(new URLRequest("picture.jpg"));
}
private function urlLoaderCompleteHandler(event:Event):void {
loader = new Loader();
loader.loadBytes(urlLoader.data);
addChild(loader);
}
}
}
Jarproger
10.03.2011, 14:36
Всё, разобрался
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.