刚刚在Flex中启动了一个简单的绘图工具,以适应Flex中的图形编码。一开始就有问题。
在这里,我使用边界容器作为绘图区域(Flex4),而不是画布,我在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>
发布于 2012-12-27 06:33:41
BorderContainer很可能不希望你在它的图形对象上绘图。我最近没有看过BorderContainer的代码,但我记得其他人也有类似的问题。
由于BorderContainer在其内容周围绘制了一个边框,因此它最有可能使用它的graphics对象来绘制该边框。因此,您不应该尝试使用边界容器的graphics属性来进行绘制。
相反,可以向边框容器添加UIComponent或其他一些Flex对象,然后在该对象上绘制图形。
发布于 2012-12-27 17:20:29
使用皮肤并在皮肤中绘制。这就是整个行为/皮肤分离的目的。
https://stackoverflow.com/questions/14046663
复制相似问题