0

刚开始在 Flex 中做一个简单的绘图工具,以适应 Flex 中的图形编码。一开始本身就有问题。

在这里,我使用 Border Container 作为绘图区域 (Flex 4) 而不是 Canvas,并且在 Mousemove 事件上绘制简单的点。是的,非常简单的基本东西。但我没有在边界容器区域看到绘制的点。但我看到鼠标事件被解雇了。不知道缺少什么。

下面是我的代码,

<?xml version="1.0" encoding="utf-8"?>

<fx:Script>
    <![CDATA[
        import mx.containers.Canvas;
        import mx.skins.Border;

        import spark.components.BorderContainer;

        protected function init():void
        {
            var whiteboard:BorderContainer = new BorderContainer();
            whiteboard.width = 1000;
            whiteboard.height = 600;                
            whiteboard.addEventListener
                  (MouseEvent.MOUSE_MOVE,whiteboard_mouseMoveHandler);
            this.addElement(whiteboard);

        }

        protected function  whiteboard_mouseMoveHandler(event:MouseEvent):void
        {               

            var graph:Graphics =
                          (event.currentTarget as BorderContainer).graphics;                    
            graph.beginFill(0x000000);
            graph.drawCircle(event.localX,event.localY,3);
            trace("x:"+event.localX+":y:"+event.localY);                
        }

    ]]>
</fx:Script>

4

2 回答 2

0

BorderContainer很可能不希望您在它的图形对象上绘图。我最近没有看代码BorderContainer,但我记得其他人也有类似的问题。

由于 aBorderContainer在其内容周围绘制了边框,因此很可能使用它的graphics对象来绘制该边框。所以你不应该尝试使用graphics边框容器的属性来绘制。

相反,将一个UIComponent或其他 Flex 对象添加到边框容器,然后在该对象上绘制图形。

于 2012-12-26T22:33:40.830 回答
0

使用皮肤并绘制皮肤。这就是整个行为/皮肤分离的目的。

于 2012-12-27T09:20:28.513 回答