2010-09-21 24 views
0

我正在使用flex sdk並試圖繪製原始幾何圖形,下面的代碼中出現了什麼問題?我嘗試沒有觸發(放置)按鈕,但沒有工作。flex中的繪圖圓

<mx:Script> 
    import flash.display.Sprite; 
    import flash.display.Shape; 

    private function draw_circle():void 
    { 
     var myCircle:Shape = new Shape(); 
     myCircle.graphics.beginFill(0x00000, 1); 
     myCircle.graphics.drawCircle(0, 0, 30); 


     addChild(myCircle); 
    } 


</mx:Script> 

    <mx:Button x="30" y="0" name="circle" click= '{draw_circle()}'> 



</mx:Button> 

+1

代碼有什麼問題?它不起作用。 (告訴我們你的意思是「沒有工作」,並且我們將更能夠告訴你如何解決它。) – LarsH 2010-09-21 05:06:42

+0

當我從按鈕調用drawcirle()方法時,circle沒有呈現。所以我嘗試用creationComplete(),它也失敗了。 – 2010-09-21 12:15:24

+0

當我在File-> new actionscript項目下嘗試相同的動作代碼時,其工作正常!我如何得到它在一個flex項目中工作? – 2010-09-21 12:26:55

回答

2

你需要endFill後您beginFill

private function draw_circle():void 
{ 
    var myCircle:Shape = new Shape(); 
    myCircle.graphics.beginFill(0x00000, 1); 
    myCircle.graphics.drawCircle(0, 0, 30); 
    myCircle.graphics.endFill(); 
    addChild(myCircle); 
} 

適當的單證可以發現here

只有調用了 endFill()方法後纔會呈現填充。

0
 
private function draw_circle(event:Event):void 
{ 
    var myCircle:Shape = new Shape(); 
    myCircle.graphics.beginFill(0x00000, 1); 
    myCircle.graphics.drawCircle(0, 0, 30); 
    myCircle.graphics.endFill(); 


    addChild(myCircle); 
} 

也...

<mx:Button x="30" y="0" name="circle" click= 'draw_circle(event);'> 

如果不指定endFill(),你可能會碰到重要的內存問題,但圈內仍應雖然

繪製
+0

這不是文檔所說的。沒有'endFill'調用 - 沒有填充。 – LiraNuna 2010-09-22 08:51:35

+0

我的錯誤,我認爲它會呈現(類似於lineStyle),但會造成內存泄漏......順便說一句,我沒有在我的示例中有意地忽略endCircle,我當然不會建議它不需要! – PatrickS 2010-09-22 10:01:19