3 Stimmen

Argumentfehler: Fehler #2015: Ungültige BitmapData

Ich habe Probleme beim Laden einer BitmapData. Ich erhalte den folgenden Fehler

Engine Init //trace
loadimage//trace
ArgumentError: Fehler #2015: Ungültige BitmapData.
    at flash.display::BitmapData()

Unten ist mein Code. Es scheint, dass der Fehler nach dem trace loadimage auftritt

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);
         }
    }
}

Und mein Aufruf der Methode sieht wie folgt aus

balls = new Array();
            balls[0] = new gameObject();
            balls[0].loadImage("com/images/ball.gif", 15,15,0,0);

Wenn ich den Loader.content trace, wird Folgendes angezeigt

Engine Init
loadimage
[object Bitmap]
ArgumentError: Fehler #2015: Ungültige BitmapData.
    at flash.display::BitmapData()

0voto

Jeff Ward Punkte 13425

Ich wollte nur kurz anmerken, dass ich diesen Fehler für eine PNG-Datei bekommen habe, die durch einen asynchronen Schreibvorgang / fehlerhaften Upload abgeschnitten wurde.

Als ich später die PNG-Datei mit einem Loader / URLRequest geladen habe, war der Ladevorgang erfolgreich abgeschlossen, die loader.content Eigenschaft hat ein Bitmap zurückgegeben, es hatte eine gültige width und height Eigenschaft, alles sieht gültig aus.

Aber sobald Sie versuchen, auf die Pixeldaten zuzugreifen (getPixel32, copyPixels oder Texture.uploadFromBitmapData), wurde folgende Fehlermeldung ausgegeben:

ArgumentError: Fehler #2015: Ungültige BitmapData.

0voto

Alejandro Aranda Punkte 653

Ich habe es mit diesem Code gelöst:

    if (myMC.width > 1&& myMC.height>1 && myMC.width<3000&& myMC.height<3000){          
        bitmapData = new BitmapData(myMC.width,myMC.height,true,1);
    }   else{
        bitmapData = new BitmapData(500,500,true,1);
    }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X