Disclaimer : Je ne suis pas un développeur Flash mais j'essaie de résoudre un problème de flash. S'il vous plaît ne supposez pas que je suis intimement familier avec AS ou Flash, car je ne le suis pas. pas.
Le dilemme que j'ai actuellement est que j'héberge une ressource qui est application/octet-stream
. Dans mon code Actionscript, j'utilise une bibliothèque qui (d'après ce dont je me souviens) fait ce qui suit new Image
et charge une ressource dans cet objet qui a été créé.
Il y a une méthode, loadImage(url)
qui accepte un url et c'est là que vous lui fournissez le chemin vers l'image.
Je n'ai pas accès à la loadImage
code source, donc je ne sais pas exactement ce qu'il fait, mais celui qui fonctionne charge l'image correctement parce que l'option Content-Type
est image/jpeg
. Celui qui ne fonctionne pas (celui que j'essaie de réparer) ne fonctionne pas à cause de la différence entre les deux. Content-Type
.
Je me demande si quelqu'un peut me dire si je peux faire en sorte que le flash analyse l'URI comme s'il s'agissait de image/jpeg
indépendamment du Content-Type ?
Je n'ai pas accès à la source code source pour le moment, mais je suis juste jeter cela là-bas pour obtenir des commentaires
Si nécessaire, j'essaierai d'obtenir le code source demain.
EDITAR: Ok, j'ai accès à la source maintenant. Voici la partie qui charge l'image :
postcardImage = new Image();
postcardImage.loadImage(imagePath);
Je suppose que Image
le constructeur est natif de flash/AS, mais je n'ai pas été capable de googler le loadImage
donc il doit être personnalisé, non ?
Ou le constructeur d'image lui-même pourrait-il être personnalisé ? Une version étendue de l'original Image
con loadImage
et autres ?
En tout cas, quelqu'un sait-il comment je peux voir le code source de loadImage
?
EDIT #2 : J'ai fait un ack-grep
et a trouvé le code source de la loadImage
définie dans une bibliothèque :
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;
}
}
Quelqu'un peut-il me conseiller sur la façon dont je peux faire le loadBytes
sur ce sujet ? Je pensais définir une méthode personnalisée, loadResource
ou quelque chose qui peut se charger indépendamment du Content-Type... ou simplement créer un paramètre optionnel dans l'interface courante de l'utilisateur. load
et à l'intérieur, se ramifier en fonction de ce qui a été passé.