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

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

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

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
По умолчанию Clear System Image Cache

Доброго время суток.
Если ли возможность программного сброса кэша изображений. Собираюсь хранить картинки в байтарреях так как не приходит на ум более разумной реализации при изменении картинки с неизменяемом имени. Можно конечно добавить в конец Math.random но так изображения будут обновляться постоянно мне же нужно изменять картинку только тогда когда она была обновлена.

Код AS3:
package src {
 
	import flash.display.Loader;
	import flash.display.LoaderInfo;
	import flash.events.Event;
	import flash.utils.ByteArray;
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.net.URLRequest;
	import flash.display.Sprite;
 
	public class loadPictures extends Sprite {
 
		public var bitmap:Bitmap;
 
		public function loadPictures($url):void {
 
			bitmap = new Bitmap();
 
			var req:URLRequest = new URLRequest($url);
			var _picLoader:Loader = new Loader();
				_picLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,loader2ByteArray);
 
			_picLoader.load(req);
		}
 
		private function loader2ByteArray(evt:Event):void {
 
			var lInfo:LoaderInfo = LoaderInfo(evt.target);
			var ba:ByteArray = lInfo.bytes;
 
			reloadByteArray(ba);
		}
 
		private function reloadByteArray(ba:ByteArray):void {
 
			var reloader:Loader = new Loader();
				reloader.loadBytes(ba);
 
				reloader.contentLoaderInfo.addEventListener(Event.COMPLETE, reloaderComplete);
		}
 
		private function reloaderComplete(evt:Event):void {
 
			var imageInfo:LoaderInfo = LoaderInfo(evt.target);
 
			var bmd:BitmapData = new BitmapData(imageInfo.width,imageInfo.height);
 
				bmd.draw(imageInfo.loader);
 
			bitmap = new Bitmap(bmd);
			bitmap.smoothing = true;
			addChild(bitmap);
 
			dispatchEvent(new Event("LOAD_COMPLETE"));
		}
	}
}
__________________
return this...

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

Регистрация: May 2008
Адрес: {0,0}
Сообщений: 754
Записей в блоге: 1
Отправить сообщение для DaFive с помощью ICQ
А как вы будете сохранять размер картинки, чтобы знать, что она другая при следующем обращении?
Если в какой-то момент известно, что картинка изменилась - прибавляйте Math.random(), и грузите по-новой.
__________________
Кодинг, багинг, алгоритминг. me @

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

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
А. Размер картинок не изменяется.
Б. Картинки могут подгружаться по несколько раз за 1 минуту а вот изменяться как с инициализации пользовательского действия так и без его участия.

Сейчас конечно во избежания не соответствия везде подкрепляю Math.random() но очень не нравиться такой подход.

Самым оптимальным было б получения МЕТА-информации по картинке (дате последнего изменения).

p.s. Если ли вообще не/документированые методы по сбросу или запрету флешу хранить кэш изображений?
__________________
return this...

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

Регистрация: May 2008
Адрес: {0,0}
Сообщений: 754
Записей в блоге: 1
Отправить сообщение для DaFive с помощью ICQ
Размер, всмысле вес. Если вы измените картинку на 1 байт, то уже её вес другой. Значит надо обновить. А дату последнего изменения можно отследить через промежуточный скрипт, если идёт взаимодействие клиент-сервер. Ибо со всякими хитрыми заголовками может работать AIR.
__________________
Кодинг, багинг, алгоритминг. me @

Старый 30.05.2012, 16:40
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 5  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Спасибо за навигацию, забыл про AIR))
__________________
return this...

Старый 30.05.2012, 17:38
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 6  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Цитата:
p.s. Если ли вообще не/документированые методы по сбросу или запрету флешу хранить кэш изображений?
Кэш браузерный используется, а не "флешовый". И не изображений, а вообще запросов. И есть стандартные механизмы для управления кэшированием данных. Смотрите заголовки Cache-control ("no-cache" в данном случае нужен), Last-Modified, If-Modified-Since. Это штатный способ. При нем само содержимое файла не будет заново загружаться, если не изменилось.

Старый 30.05.2012, 17:48
DaFive вне форума Посмотреть профиль Отправить личное сообщение для DaFive Посетить домашнюю страницу DaFive Найти все сообщения от DaFive
  № 7  
Ответить с цитированием
DaFive
 
Аватар для DaFive

Регистрация: May 2008
Адрес: {0,0}
Сообщений: 754
Записей в блоге: 1
Отправить сообщение для DaFive с помощью ICQ
Ну это в случае, если браузер участвует в отображении swf.
__________________
Кодинг, багинг, алгоритминг. me @

Старый 30.05.2012, 20:59
RJ Presto вне форума Посмотреть профиль Отправить личное сообщение для RJ Presto Найти все сообщения от RJ Presto
  № 8  
Ответить с цитированием
RJ Presto

Регистрация: Nov 2007
Сообщений: 55
предположу, что флэшплеер под Win использует IE для хттп транспорта, будучи запущеным в виде стэнд-элон

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

Регистрация: May 2008
Адрес: {0,0}
Сообщений: 754
Записей в блоге: 1
Отправить сообщение для DaFive с помощью ICQ
Как минимум проксю точно от IE цепляет, проверено.
__________________
Кодинг, багинг, алгоритминг. me @

Старый 31.05.2012, 02:43
RJ Presto вне форума Посмотреть профиль Отправить личное сообщение для RJ Presto Найти все сообщения от RJ Presto
  № 10  
Ответить с цитированием
RJ Presto

Регистрация: Nov 2007
Сообщений: 55
ну это я к тому, что кэш браузерный используется не только когда флэш стартует в браузере

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:41.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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