2011-02-16 47 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