Отказ от ответственности: я не флеш-разработчик
но я пытаюсь решить проблему со вспышкой.
Пожалуйста, не думайте, что я глубоко
знакомы с AS или Flash, потому что я
нет.
Дилемма, с которой я сталкиваюсь в настоящее время, заключается в том, что я размещаю ресурс application/octet-stream
. В моем коде Actionscript я использую некоторую библиотеку, которая (из того, что я могу вспомнить) делает new Image
и загружает ресурс в тот объект, который был создан.
Существует метод, loadImage(url)
, который принимает URL-адрес, и именно здесь вы указываете ему путь к изображению.
У меня нет доступа к исходному коду loadImage
, поэтому я точно не знаю, что он делает, но рабочий загружает изображение нормально, потому что Content-Type
равен image/jpeg
. Нерабочий (этот я пытаюсь исправить) не из-за различных Content-Type
.
Мне интересно, может ли кто-нибудь сказать мне, могу ли я заставить флэш-память в основном анализировать URI, как если бы это было image/jpeg
, независимо от типа содержимого?
У меня нет доступа к источнику
код на данный момент, но я просто
выбрасывая это, чтобы получить ввод
Если понадобится, завтра попробую получить исходный код
РЕДАКТИРОВАТЬ: Хорошо, теперь у меня есть доступ к источнику. Вот часть, которая загружает изображение:
postcardImage = new Image();
postcardImage.loadImage(imagePath);
Я предполагаю, что Image
конструктор является родным для flash / AS, но я не смог Google loadImage
метод, поэтому он должен быть пользовательским, верно?
Или сам конструктор Image может быть пользовательским? Расширенная версия оригинального Image
с loadImage
методом и тому подобное?
В любом случае, кто-нибудь знает, как я могу просмотреть исходный код loadImage
?
EDIT # 2 : я сделал ack-grep
и нашел исходный код для метода loadImage
, определенного в библиотеке:
public class Image extends Sprite {
private var _source:String;
private var _loader:Loader;
private var _bmapData:BitmapData;
private var _loadedBytes:Number;
private var _totalBytes:Number;
public function Image() {
trace('IMAGE');
}
public function loadImage(s:String):void {
_source = s;
_loader = new Loader();
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);
_loader.contentLoaderInfo.addEventListener(Event.INIT, onLoading);
_loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);
_loader.load(new URLRequest(_source));
function onProgress(e:ProgressEvent):void {
_loadedBytes = e.target.bytesLoaded;
dispatchEvent(new ProgressEvent(ProgressEvent.PROGRESS));
if(!_totalBytes) {
setTotalBytes(e.target.bytesTotal);
}
}
function onLoading(e:Event):void {
_loader.contentLoaderInfo.removeEventListener(Event.INIT, onLoading);
}
function onLoaded(e:Event):void {
_bmapData = e.target.content.bitmapData;
addChild(e.target.content);
dispatchEvent(new Event(Event.COMPLETE));
_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onLoaded);
}
}
public function getBmapData():BitmapData {
return _bmapData;
}
public function duplicate():Image {
var dup:Image = new Image();
dup.addChild(new Bitmap(_bmapData.clone()));
return dup;
}
public function getLoadedBytes():Number {
return _loadedBytes;
}
private function setTotalBytes(n:Number):void {
_totalBytes = n;
dispatchEvent(new Event("TOTALBYTES_SET"));
}
public function getTotalBytes():Number {
return _totalBytes;
}
}
Может кто-нибудь дать совет, как мне сделать loadBytes
на этом? Я думал об определении пользовательского метода, loadResource
или чего-то, что может загружаться независимо от Content-Type ... или просто создать необязательный параметр в текущем методе load
и внутри, разветвляться на основе того, что было передано. 1055 *