2013-12-13 136 views
0

我不確定是否我已經完成或正在考慮這個,但是我已經有了這個場景。我希望能夠使用多個類(現在)向頁面添加一個三角形。第一個是在Flash中將動作添加到幀中,第二個是實際的類。現在,我可以這樣做嗎?還是我傻傻地想我可以?我希望這樣做,這樣我就可以將我的背景創建爲一個動態創建的區域,我認爲我可以與之交互作爲一個類的實例。添加形狀到舞臺as3

在框架

import flash.display.Stage; 

var sides:Sides=new Sides(); 
stage.addChild(sides); 
this.addChild(sides); 

package { 
    import flash.display.Shape; 

     public class Sides extends Shape { 
      public function Sides() { 
       var triangleHeight:uint = 100; 
      var triangle:Shape = new Shape(); 

      // red triangle, starting at point 0, 0 
      triangle.graphics.beginFill(0xFF0000); 
      triangle.graphics.moveTo(triangleHeight/2, 0); 
      triangle.graphics.lineTo(triangleHeight, triangleHeight); 
      triangle.graphics.lineTo(0, triangleHeight); 
      triangle.graphics.lineTo(triangleHeight/2, 0); 
      triangle.graphics.endFill(); 
      trace("Into construct"); 
     } 
    } 
} 

我有問題類是實際的三角形不會出現它是空白的屏幕上。我知道構造函數已經運行,但是我沒有得到實際的輸出。

我希望我明確自己。如果任何人都可以提出更好的解決方案,我很樂意聽到它。我的情況是這樣的。 我希望創造一個其他影片剪輯可以互動的世界。我將創建線條來表示它們。現在是動態生成它還是有一種方法來創建某種基類,使其他所有基類都能夠運行,從而使我具有隨機寬度。希望這是明確的。

回答

1

您在您繪製三角形的Sides構造函數中創建Shape的實例,但是此形狀永遠不會添加到顯示列表中,而是將Sides的實例(本身沒有任何繪製)添加到顯示列表。

由於身體兩側類的擴展的形狀,你並不需要一個形狀的另一個實例,身體兩側本身的實例是一個形狀,您可以直接繪製它像這樣:

package { 
    import flash.display.Shape; 

     public class Sides extends Shape { 
      public function Sides() { 
       var triangleHeight:uint = 100; 

       // red triangle, starting at point 0, 0 
       this.graphics.beginFill(0xFF0000); 
       this.graphics.moveTo(triangleHeight/2, 0); 
       this.graphics.lineTo(triangleHeight, triangleHeight); 
       this.graphics.lineTo(0, triangleHeight); 
       this.graphics.lineTo(triangleHeight/2, 0); 
       this.graphics.endFill(); 
       trace("Into construct"); 
     } 
    } 
} 
+0

謝謝,這工作。我應該使用'stage.addChild(sides);'還是 'this.addChild(sides);'有沒有更好的方法來實現我的最終目標? – Kyle93

+0

不知道我是否理解你的原始問題100%,但是你定義的任何一個擴展任何類的顯示列表(例如DisplayObjectContainer,DisplayObject,Shape,Sprite,MovieClip)都可以添加你的三角形,就像'var blob:MySpriteExtendingClass = new MySpriteExtendingClass(); blob.addChild(new Sides());' – milks

+0

我在說。我希望創建隨機x長度的多行。在任何一個地方或任意地點。如果這有道理? – Kyle93