Рисование линии без mxml (с ActionScript) - PullRequest
2 голосов
/ 16 февраля 2011

Хай, я хочу нарисовать линию с 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()"/>

`

Ответы [ 2 ]

6 голосов
/ 16 февраля 2011

Обратите внимание, что при использовании myShape.graphics.moveTo вы не рисуете само приложение, поскольку объект Graphic соответствует созданному вами Shape.

В настоящее время вы создали фигуру какНовый объект в памяти и нарисованная на нем линия.

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

Чтобы он появился в вашем приложении, вам все равно нужно использовать addChild, чтобы добавить форму как дочерний элемент вашего Приложения или Компонента. Ссылка на Adobe 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);
}
4 голосов
/ 16 февраля 2011

Вы можете напрямую использовать 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

...