2015-01-14 44 views
0

在ActionScript中編寫代碼我發現了一個我無法解決的錯誤。我有一個帶有庫的Flash文件,其中我有一個名爲「SpriteGraphic」的MovieClip對象(它已鏈接,它的類名也是「SpriteGraphic」)ActionScript 3 - 在外部類中使用MovieClip

現在我有一個外部類,我想要該對象的一個​​實例:

package { 

     import flash.display.Stage; 
     import flash.geom.Point; 
     import flash.display.MovieClip; 

     public class Object 
     {   
      var spriteGraphic:SpriteGraphic; 
      var velY:Number; 
      var velX:Number; 
      var IA:Number; 
      public function Object(posInit:Point, vel:Number , parAngle:Number, stageObj:Stage):void 
      { 
       spriteGraphic = new SpriteGraphic();    
       spriteGraphic.x = posInit.x; 
       spriteGraphic.y = posInit.y;   
       trace(spriteGraphic.x); 
       IA = parAngle;    
       velX = -vel * Math.cos(IA); 
       velY = vel * Math.sin(IA); 
       stageObj.addChild(spriteGraphic); 
      } 
... 

當我執行輸出表示spriteGraphic爲空。 如何從庫中使用MovieClip,並在外部類中使用該類型的變量?

非常感謝!

沒人?真? :c

回答

0

我假設對象是一個保留字。嘗試爲你的班級使用不同的名字。

還有,你的構造函數不應該有返回類型。雖然編譯器不會警告你,但從技術上來說,輸入它無效是一個錯誤。

package { 

     import flash.display.Stage; 
     import flash.geom.Point; 
     import flash.display.MovieClip; 

     public class MyObject 
     {   
      var spriteGraphic:SpriteGraphic; 
      var velY:Number; 
      var velX:Number; 
      var IA:Number; 
      public function MyObject(posInit:Point, vel:Number , parAngle:Number, stageObj:Stage) 
      { 
       spriteGraphic = new SpriteGraphic();    
       spriteGraphic.x = posInit.x; 
       spriteGraphic.y = posInit.y;   
       trace(spriteGraphic.x); 
       IA = parAngle;    
       velX = -vel * Math.cos(IA); 
       velY = vel * Math.sin(IA); 
       stageObj.addChild(spriteGraphic); 
      } 
+0

我改了名字。原始類不稱爲對象,並且MovieClip不稱爲SpriteGraphic。 – Ronan

+0

StageObj的父母是否已加入舞臺?在此之前,DisplayObject的stage屬性爲null。 – phasma

+0

這就是我如何創建一個新的「MyObject」。它來自主場景。 var myObject:MyObject = new MyObject(character.position,Distance,angle,stage); – Ronan

相關問題