2009-12-31 7 views
1

Dans ma classe, si je crée bitmapData comme ceci:# 2015: Invalid BitmapData

private var tImage:BitmapData; 


public function object():void { 
     tImage = new BitmapData(30,30,false,0x000000); 
} 

Je reçois l'erreur suivante:

ArgumentError: Error #2015: Invalid BitmapData. 

Mais si je déclare la variable dans la méthode:

public function object():void { 
    var tImage:BitmapData; 
    tImage = new BitmapData(30,30,false,0x000000); 
} 

Cela fonctionne très bien. POURQUOI!?!?! Ça me rend fou.

Merci les gars!

+1

Je dirais qu'il ya quelque chose d'autre se passe ici, le bug peut-être pas dans le code que vous partagez. Qu'est-ce que cette séance à l'intérieur, pouvez-vous partager plus de l'image plus grande? –

Répondre

0

Je pense qu'il pourrait s'agir d'un autre code de votre classe.

Les travaux suivants, mais je n'ai pas nommé la fonction « objet » (puisque je devine que c'est un mot réservé ??)

package 
{ 
/** 
* ... 
* @author your name here 
*/ 
    import flash.display.MovieClip; 
    import flash.events.Event; 
    import flash.display.Bitmap; 

    public class TestBitmap extends MovieClip 
    { 

    private var tImage:BitmapData; 

    public function TestBitmap():void 
    { 
     if (stage) init(); 
     else addEventListener(Event.ADDED_TO_STAGE, init); 
    } 

    private function init(e:Event = null):void 
    { 
      tImage = new BitmapData(30,30,false,0x000000); 
    } 
    } 
} 

Cette version simplifiée ci-dessous fonctionne aussi trop:

package 
{ 
/** 
* ... 
* @author your name here 
*/ 
    import flash.display.MovieClip; 
    import flash.events.Event; 
    import flash.display.Bitmap; 

    public class TestBitmap extends MovieClip 
    { 

    private var tImage:BitmapData; 

    public function TestBitmap():void 
    { 
    tImage = new BitmapData(30,30,false,0x000000); 
    } 


    } 
} 
-1

Vous avez déclaré que TImage privé ...

private var tImage:BitmapData; 


public function object():void { 
     tImage = new BitmapData(30,30,false,0x000000); 
} 

Son devrait être

var tImage:BitmapData; 


public function object():void { 
     tImage = new BitmapData(30,30,false,0x000000); 
} 

Derp

+0

La question était «POURQUOI? –