2012-12-26 12 views
0

刚刚开始使用Flex中的一个简单绘图工具来习惯Flex中的图形编码。在开始时遇到问题。简单的绘图不能在Flex中使用Border容器显示

这里我使用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> 

回答

0

BorderContainer是最有可能没有指望你绘制的图形对象。我最近没有看过BorderContainer的代码,但我记得其他人有类似的问题。

由于BorderContainer围绕其内容绘制边框,因此很可能使用它的graphics对象绘制边框。因此,您不应该尝试使用边框容器的graphics属性进行绘制。

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

0

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