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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.06.2010, 00:25
ninth вне форума Посмотреть профиль Отправить личное сообщение для ninth Найти все сообщения от ninth
  № 1  
Ответить с цитированием
ninth

Регистрация: May 2010
Сообщений: 5
По умолчанию отмена загрузки файла (AS3)

В общем во флешу грузятся картинки. По нажатию на кнопку грузится вторая и т.д. Как отменить, прервать загрузку предыдущей.
А то получается если первая ещё не загрузилась до конца, то она продолжает грузиться хотя уже началась загрузка второй.
Искал, нашёл close(), но почему-то работать не хочет. Может чего не хватает.

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

код приблизительно такой

Код AS3:
var i=0;
function loadIMG(i) {
	var loader:Loader = new Loader();
	var urlRequest:URLRequest=new URLRequest("0"+i+".jpg");
	loader.load(urlRequest);
 
	loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, imageLoaded_PROGRESS);
	loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
 
	function imageLoaded_PROGRESS(e:ProgressEvent):void {
		trace(e.target.bytesLoaded+" / "+e.target.bytesTotal);
	}
 
	function imageLoaded(e:Event):void {
		addChild(loader);
	}
 
	btn.addEventListener(MouseEvent.CLICK, stopLoad);
	function stopLoad(event:MouseEvent):void {
		try {
			loader.close();
			trace("шла какая-то загрузка");
		} catch (error:Error) {
			trace("нет загрузки");
		}
		i++;
		loadIMG(i);
	}
}
loadIMG(0);
почему close() не срабатывает?

Старый 18.06.2010, 00:35
zurkis вне форума Посмотреть профиль Отправить личное сообщение для zurkis Найти все сообщения от zurkis
  № 2  
Ответить с цитированием
zurkis
 
Аватар для zurkis

Регистрация: Nov 2008
Адрес: Атланта
Сообщений: 1,271
я думаю что чтоб сделать отмену загрузки, сначала почитай про класс URLLoader
__________________
Пока я жив, Вы горем обеспечены

Старый 18.06.2010, 01:49
ninth вне форума Посмотреть профиль Отправить личное сообщение для ninth Найти все сообщения от ninth
  № 3  
Ответить с цитированием
ninth

Регистрация: May 2010
Сообщений: 5
Цитата:
Сообщение от zurkis Посмотреть сообщение
я думаю что чтоб сделать отмену загрузки, сначала почитай про класс URLLoader
А при чём тут класс URLLoader. Он же вроде для текста, и для загрузки картинок не подходит.

Старый 18.06.2010, 01:54
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 4  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 ninth:
А как вы определили, что close не работает?

А URLLoader не для текста. Точнее, далеко не только для него.
Цитата:
The URLLoader class downloads data from a URL as text, binary data, or URL-encoded variables. It is useful for downloading text files, XML, or other information to be used in a dynamic, data-driven application.
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

Старый 18.06.2010, 04:13
ninth вне форума Посмотреть профиль Отправить личное сообщение для ninth Найти все сообщения от ninth
  № 5  
Ответить с цитированием
ninth

Регистрация: May 2010
Сообщений: 5
Цитата:
"Класс Loader используется для загрузки SWF-файлов либо файлов изображений (JPG, PNG или GIF). Используйте метод load() для инициации загрузки. Загруженный экранный объект добавляется в качестве потомка объекта Loader
Используйте класс URLLoader для загрузки текстовых или двоичных данных."
http://help.adobe.com/ru_RU/AS3LCR/F...ay/Loader.html

И Ваша фцитата, на русском
Цитата:
Класс URLLoader загружает данные с URL-адреса в виде текста, двоичных данных или переменных в кодировке URL. Это оказывает помощь при загрузке текстовых файлов, XML-объектов или других сведений, которые будут использованы в динамическом приложении по обработке данных.
http://help.adobe.com/ru_RU/AS3LCR/F...URLLoader.html

Ну вот примерно выше приведённое вычитал и решил, что для загрузки JPG лучше использовать Loader

А определил просто что close() не срабатывает в режиме Simulate Download. (Хотя млин может я что-то неправильно делаю, скорей всего )

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

Чёт даже простой пример нифига не работает. Может в режиме Simulate Download немного по другому?

попробовал так:
Код AS3:
//новый лоадер
var lod:Loader = new Loader();
//урл
lod.load(new URLRequest("01.jpg"));
//прогресс
lod.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, imageLoaded_PROGRESS);
//по завершению загрузки
lod.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
//отслеживание прогресса
function imageLoaded_PROGRESS(event:ProgressEvent):void {
	trace(event.target.bytesLoaded+" / "+event.target.bytesTotal);
}
//по завершению загрузки, как только так сразу :)
function imageLoaded(event:Event):void {
	//только если всё загруженно добавлям (хотя пофиг)
	if (event.target.bytesLoaded==event.target.bytesTotal) {
		trace("загрузилось");
		addChild(lod);
	} else {
		trace("не загрузилось и не надо");
	}
}
//останоака загрузки
btn.addEventListener(MouseEvent.CLICK, stopLoad);
function stopLoad(event:MouseEvent):void {
	try {
		//и тут типо должна остановиться загрузка :(
		lod.close();
		trace("шла какая-то загрузка");
	} catch (error:Error) {
		trace("нет загрузки");
	}
}
почитал http://help.adobe.com/ru_RU/AS3LCR/F...l#unload%28%29 попробовал по другому
Код AS3:
//новый лоадер
var lod:Loader = new Loader();
//добавляем
addChild(lod);
//урл
lod.load(new URLRequest("01.jpg"));
//Удаляет дочерний объект этого объекта Loader, загруженный с помощью метода load().
//Параметр property связанного объекта LoaderInfo сброшен до значения null.
//Дочерний объект не обязательно удаляется, так как на него могут ссылаться другие объекты.
//Однако он больше не является дочерним для объекта Loader.
//попробуем
lod.loaderInfo.addEventListener(Event.UNLOAD, lodUnload);
//прогресс
lod.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, imageLoaded_PROGRESS);
//по завершению загрузки
lod.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
//отслеживание прогресса
function imageLoaded_PROGRESS(event:ProgressEvent):void {
	trace(event.target.bytesLoaded+" / "+event.target.bytesTotal);
}
//по завершению загрузки, как только так сразу :)
function imageLoaded(event:Event):void {
	trace("загрузилось");
}
//останавливаем загрузку
function lodUnload(evt:Event) {
	lod.close();
}
//останоака загрузки
btn.addEventListener(MouseEvent.CLICK, stopLoad);
function stopLoad(event:MouseEvent):void {
	lod.unload();
}
не пашет, всёравно продолжает грузить. Масаракш


Последний раз редактировалось ninth; 19.06.2010 в 03:13.
Создать новую тему Ответ Часовой пояс GMT +4, время: 23:07.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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