在Flex应用程序中显示元素边框?
有没有办法在Flex应用程序的(MXML)元素周围放置边框?我使用Inspect按钮描绘了类似于Firebug为HTML所做的事情(请参见http://getfirebug.com/html并搜索“检查”以了解我的意思)。在Flex应用程序中显示元素边框?
这样做的原因是我在布局上遇到了一些麻烦。
正如我即将发布这个,我想在Flex Builder 3中使用mxml编辑器的设计视图。这或多或少是我想要的。还有其他建议吗?
您可以手动将它们放在那里,但设计视图对于布置绝大多数(如果不是全部)您的应用程序非常全面和优秀。 – invertedSpear 2010-02-01 21:28:19
我不得不在源视图中修改一些位置属性(x和y),因为由于某些原因,设计视图与实际运行的应用程序不匹配。但设计观点确实有所帮助。 – regjo 2010-02-02 13:51:28
你可以试试“Kap Inspect”,它可能是Flex环境中最接近萤火虫的东西。
我从MXML做过几次,找出布局问题,但不是。
在AS中,您可以在给定组件的图形层中绘制一个矩形。
一种方法是为父母MXML组件creationComplete事件创建一个监听器,并在那里绘制矩形 - 必须等到所有事情都已完成实例化和测量以确保您具有正确的尺寸。
如果您的应用可调整大小,您还需要创建调整大小侦听器。
东西,松散的,就像这样:
private function creationCompleteListener():void
{
drawRectanglesAroundDisplayElements();
}
private function drawRectanglesAroundDisplayElements():void
{
for each(var displayElement:DisplayObject in displayList)
{
var graphicsLayer:Graphics = displayElement.graphics;
graphicsLayer.lineStyle(1,0xFF0000);
graphicsLayer.drawRect(0,0,displayElement.width, displayElement.height);
}
}
这将通过所有的显示对象,其中的DisplayObjectContainer对象的运行,并把1px的红色边框周围。
您可能更愿意仅突出显示某些类型的显示对象,如果是,则可以通过检查给定的DisplayObject的名称或数据类型来进行筛选。
有时我会为某些对象添加半透明背景填充。我发现重叠背景比交叉线更容易看到(当然,这通常是不可行的)。
例如,如果你想给所有纵向方框透明的蓝色BG,还有一个红色的轮廓,你可以修改上面,像这样:
private function drawRectanglesAroundDisplayElements():void
{
for each(var displayElement:DisplayObject in displayList)
{
var graphicsLayer:Graphics = displayElement.graphics;
if(displayElement is VBox)
{
graphicsLayer.beginFill(0x0000FF,.3);
graphicsLayer.drawRect(0,0,displayElement.width, displayElement.height);
graphicsLayer.endFill();
}
graphicsLayer.lineStyle(1,0xFF0000);
graphicsLayer.drawRect(0,0,displayElement.width, displayElement.height);
}
}
希望有所帮助。
另请参阅:http://*.com/search?q=flex+firebug – regjo 2010-02-02 13:57:07