ArgumentError: Error #2015: Invalid BitmapData
J'ai des problèmes de chargement d'un objet bitmapData. J'obtiens l'erreur suivante
Engine Init //trace
loadimage//trace
ArgumentError: Error #2015: Invalid BitmapData.
at flash.display::BitmapData()
Ci-dessous mon code. il semble qu'il arrive après la trace loadimage
package com.objects {
import flash.display.Sprite;
import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.geom.Point;
import flash.geom.Rectangle;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.net.*;
import flash.events.*;
import flash.display.LoaderInfo;
public class gameObject extends Sprite {
protected var w:Number;
protected var h:Number;
protected var image:BitmapData;
protected var canvas:Bitmap;
protected var px:Number;
protected var py:Number;
public function gameObject():void
{
init();
}
private function init():void
{
}
public function loadImage(imageDir:String, w:Number, h:Number, px:Number, py:Number):void
{
this.w = w;
this.y = y;
this.px = px;
this.py = py;
trace("loadimage");
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,imageComplete);
loader.load(new URLRequest(imageDir));
}
private function imageComplete(e:Event):void {
var loader:LoaderInfo = LoaderInfo(e.target);
image = Bitmap(loader.content).bitmapData;
drawImage();
}
private function drawImage():void
{
var tilePoint:Point = new Point(0,0);
var tileRect = new Rectangle(py,px,w,h);
trace(loader.content);
var canvasData:BitmapData = new BitmapData(w,h);
trace("got canvas data");
canvasData.copyPixels(image,tileRect,tilePoint);
trace("copied pixels");
canvas = new Bitmap(canvasData);
}
}
}
Et mon appel de la méthode, c'est comme si
balls = new Array();
balls[0] = new gameObject();
balls[0].loadImage("com/images/ball.gif", 15,15,0,0);
Quand je trace le Chargeur.contenu, ci-dessous est ce que montre
Engine Init
loadimage
[object Bitmap]
ArgumentError: Error #2015: Invalid BitmapData.
at flash.display::BitmapData()
OriginalL'auteur numerical25 | 2010-01-09
Vous devez vous connecter pour publier un commentaire.
Flash Player 9 uniquement en charge 2880 px de largeur et de hauteur.
Oui. kb2.adobe.com/cps/496/cpsid_49662.html
OriginalL'auteur Arindam
également vérifier si votre image n'est pas trop grand. J'ai eu cette erreur sur les images qui ont été plus de 3000 pixels ...
OriginalL'auteur Frank
Je pense que vous le souhaitez pour référence le Chargeur de l'e.cible, pas l'LoaderInfo. Essayez de trace(loader.le contenu) juste avant votre image= ligne et de voir si il vous dit de quel type de données contenu.
ce qui est étrange, c'est qu'il fonctionne très bien si j'ai le code canvasData de largeur et de hauteur. mais si j'utilise les varibles, il ne marche pas
OriginalL'auteur justkevin
Essayez de changer votre imageComplete ():
Qui devraient vous permettre d'intercepter l'erreur avant qu'il n'arrive. La prochaine question est de savoir POURQUOI votre image bitmap n'est pas analysée ok.
OriginalL'auteur grapefrukt
Ok , maintenant je l'ai corrigé. Si vous prenez un bon coup d'oeil au code, vous verrez la propriété Y de ma classe varible "w"
OriginalL'auteur numerical25
Je voulais juste carillon et dire que j'ai eu cette erreur pour un fichier PNG qui avait été tronquée par une écriture asynchrone /broken téléchargement.
Quand plus tard, j'ai chargé le PNG avec un
Loader
/URLRequest
la charge est terminée avec succès, leloader.content
bien retourné uneBitmap
, il avait un validewidth
etheight
propriété, tout semble valide.Mais dès que vous avez essayé d'accéder aux données de pixels (
getPixel32
,copyPixels
, ouTexture.uploadFromBitmapData
), il l'a jeté:OriginalL'auteur Jeff Ward
J'ai résolu avec ce code:
OriginalL'auteur Alejandro Aranda