在纯ActionScript代码中模拟includeInLayout = false
如果您了解Flex,您可能知道属性“includeInLayout”的作用。如果不是,则此属性使组件的父级忽略组件的边界(如宽度和高度)以呈现它们自己的边界。
参考说明如下:
指定此组件是否为
包含在父母的布局中
容器。如果为true,则对象为
包含在其父容器中
布局和尺寸和位置
它的父容器按其布局
规则。如果为false,则对象大小和
位置不受其影响
父容器的布局。
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/core/UIComponent.html#includeInLayout
在Flex中,例如:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
creationComplete="application1_creationCompleteHandler(event)">
<mx:Script>
<![CDATA[
import mx.events.FlexEvent;
protected function application1_creationCompleteHandler( event:FlexEvent ):void
{
trace( container.width, container.height ); // output: 200 200
}
]]>
</mx:Script>
<mx:Canvas id="container">
<mx:Button label="Test"
width="100"
height="100" />
<mx:Button label="Test2"
width="200"
height="200" />
</mx:Canvas>
</mx:Application>
现在,如果我在第二个按钮中设置includeInLayout =“false”:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
creationComplete="application1_creationCompleteHandler(event)">
<mx:Script>
<![CDATA[
import mx.events.FlexEvent;
protected function application1_creationCompleteHandler( event:FlexEvent ):void
{
trace( container.width, container.height ); // output: 100 100
}
]]>
</mx:Script>
<mx:Canvas id="container">
<mx:Button label="Test"
width="100"
height="100" />
<mx:Button label="Test2"
width="200"
height="200"
includeInLayout="false" />
</mx:Canvas>
</mx:Application>
我知道实现此属性所涉及的所有框架体系结构,并且知道此属性是Flex Framework的属性。我想要的是纯粹的动作中的这种行为。例如:
import flash.display.Shape;
var myBox:Shape = new Shape();
myBox.graphics.beginFill(0xFF0000);
myBox.graphics.drawRect(0, 0, 100, 100);
myBox.graphics.endFill();
addChild(myBox);
trace(width, height); // output: 100 100
var myAnotherBox:Shape = new Shape();
myAnotherBox.graphics.beginFill(0xFF00FF, .5);
myAnotherBox.graphics.drawRect(0, 0, 200, 200);
myAnotherBox.graphics.endFill();
addChild(myAnotherBox);
trace(width, height); // output: 200 200
在纯的Actionscript中是否有一些等效的实现来在“myAnotherBox”上重现这种行为?
我已经尝试过:
改变变换矩阵;
改变变换pixelBounds;
改变scrollRect;
涂面膜;
并没有成功。
干杯...
没有找到相关结果
已邀请:
3 个回复
靛新比比催
舶啥戚
冉案