2011-02-16 48 views
2

hai我想用actionscript畫一條線。誰能給我一個提示 這裏是我的代碼沒有mxml的繪圖線(使用ActionScript)

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx"> 

    <fx:Script> 
     <![CDATA[ 

     private function drawLine():void 
     { 
      var myShape:Shape =new Shape(); 
      myShape=new Shape() ; 
      myShape.graphics.lineStyle(2, 0x990000, .75); 
      myShape.graphics.moveTo(10, 10); 

      myShape.graphics.lineTo(25, 45); 

     } 

     ]]> 
    </fx:Script> 

<s:Button label="myButton" click="drawLine()"/> 

`

回答

6

注意,當您使用myShape.graphics.moveTo你是不是在應用程序本身繪製因爲Graphic對象是您創建的Shape

當前,您已將形狀創建爲內存中的新對象並在其上繪製了一條線。

_____________   _____________ 
|    |   | __   | 
|    |   ||\ | <-shape | 
|    |   ||_\|   | 
|    |   |    | 
| Application |   | Memory  | 
|    |   |    | 
|_____________|   |_____________| 

對於它在應用程序中顯示出來,你仍然需要使用addChild的形狀可根據需要添加應用程序或組件的一個孩子。 Adobe Reference Link

_____________   _____________ 
| __   |   |    | 
||\ | <-shape |   |    | 
||_\|   |   |    | 
|    |   |    | 
| Application |   | Memory  | 
|    |   |    | 
|_____________|   |_____________| 

嘗試使用this.addChild應該添加您的形狀,但請記住,您在提請所在的座標爲Shape對象不適合你的應用程序。

private function drawLine():void 
{ 
    var myShape:Shape = new Shape(); 
    myShape = new Shape() ; 
    myShape.graphics.lineStyle(2, 0x990000, .75); 
    myShape.graphics.moveTo(10, 10); 

    myShape.graphics.lineTo(25, 45); 
    this.addChild(myShape); 
} 
+0

+1編輯原創答案格式化代碼。我想你沒有足夠的積分推動它的生活;但我批准了你。 – JeffryHouser 2011-02-16 14:23:06

4

您可以直接使用spark.primitives.Line獲取任何具有各種樣式和屬性的行。

 private function drawLine():void 
     { 
      var newLn:Line = new Line(); 
      newLn.xFrom = 50; 
      newLn.xTo = 200; 
      newLn.y = 100; 
      newLn.stroke = new SolidColorStroke(0xFF0000, 2); 
      addElement(newLn); 
     } 

HTH, FTQuest