Bonjour iam essayant de charger quelques jpeg externes dans As3. Cela fonctionne bien localement dans Flash, mais il ne fonctionne pas du tout sur mon serveur. Mon application charge également une vidéo YouTube simultanément.Flash As3 Loader Problème
function drawResult(index,videoID,song_title,thumbnail:String=null)
{
var theClip:resultRowClip=new resultRowClip();
_clip.addChild(theClip);
myArray[index] = new Array(videoID,theClip);
theClip.y=0+(43*(index-1));
theClip.rowText.text = song_title;
theClip.rowBack.visible = false;
if (thumbnail != ""){
theClip.tHolder.visible=true;
loadImage(thumbnail,index);
}
}
function loadImage(url:String,index):void
{
//this.myClip.myText.text += "load image";
// Set properties on my Loader object
var imageLoader:Loader = new Loader();
imageLoader.load(new URLRequest(url));
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, function (evt:Event){imageLoaded(evt,index)});
}
function imageLoaded(evt,id):void
{
//this.myClip.myText.text += "id : evt : " + evt.status;
// Load Image
var image:Bitmap = new Bitmap(evt.target.content.bitmapData);
myArray[id][1].tHolder.addChild(image);
myArray[id][1].tHolder.width=myArray[id][1].tHolder.width*0.35;
myArray[id][1].tHolder.height=myArray[id][1].tHolder.height*0.35;
}
Est-ce que quelqu'un sait quel est le problème?
** J'ajouté deux écouteurs Evenet de io Erreur:
imageLoader.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
imageLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
C'est la fonction de traitement des erreurs:
private function ioErrorHandler(event:IOErrorEvent):void {
this.myClip.myText.text +=("ioErrorHandler: " + event);
}
de toute façon, je suis pas d'erreur ...
J'ai également essayé de déplacer les écouteurs avant imageLoader.load mais c'est toujours la même ... aucune erreur et aucune donnée chargée ..
je change mon code pour Patriks suggestion:
function loadImage(url:String,index):void
{
//this.myClip.myText.text += "load image";
// Set properties on my Loader object
//if (index != 1) return;
var imageLoader:Loader = new Loader();
imageLoader.name = index.toString();
//myArray[index][1].addChild(imageLoader);
//imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, function (evt:Event){imageLoaded(evt,index)});
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler);
imageLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
imageLoader.load(new URLRequest(url));
}
Ma fonction actuelle de completeHandler (de Patriks de TNX):
private function completeHandler(evt:Event):void{
//this.myClip.myText.text += "id : evt : " + evt.status;
// Load Image
trace("evt target loader name : "+ evt.target.loader.name);
evt.target.removeEventListener(Event.COMPLETE, completeHandler);
var image:Bitmap = new Bitmap(evt.target.content.bitmapData);
myArray[evt.target.loader.name][1].tHolder.addChild(image);
myArray[evt.target.loader.name][1].tHolder.width=myArray[evt.target.loader.name][1].tHolder.width*0.35;
myArray[evt.target.loader.name][1].tHolder.height=myArray[evt.target.loader.name][1].tHolder.height*0.35;
//trace (hadar.y + "Y/X" + hadar.x);
}
Il fonctionne encore que sur IDE flash et le travail dosent sur un navigateur ...
Ajoutez un écouteur d'événement pour l'événement d'erreur et affichez quel est le problème. – Kricket
J'ai essayé d'ajouter 2 écouteurs: imageLoader.addEventListener (IOErrorEvent.IO_ERROR, ioErrorHandler); imageLoader.contentLoaderInfo.addEventListener (IOErrorEvent.IO_ERROR, ioErrorHandler); et n'a obtenu aucune réponse ... donc cela signifie qu'il n'y a pas d'erreur ..?!? – Hadar
Où sont situés les fichiers? Testez-vous le fichier .swf localement, mais effectuez des tests en utilisant une page .html sur votre serveur? – Joony