我有一个Flash库,其中包含由应用设计时滤镜的其他精灵组成的精灵符号。我正在像这样将这些符号嵌入到Flex应用程序中:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
[Bindable]
[Embed(source="Resources.swf", symbol="SquareContainer")]
private var squareContainer_class:Class;
private function log(msg:String):void {
output.text = output.text + "\n" + msg;
}
]]>
</mx:Script>
<mx:VBox horizontalAlign="center" width="100%" height="100%" >
<mx:Image id="squareContainer" source="{squareContainer_class}"/>
<mx:Button click="log(squareContainer.width + ', ' + squareContainer.height);"/>
<mx:TextArea id="output" width="100%" height="100%" />
</mx:VBox>
</mx:Application>
在这个例子中,SquareContainer符号的宽度和高度均为100px;但是它包含一个带有发光和模糊滤镜的子精灵,使得该精灵看起来比100x100要大得多。由于我无法确定容器的组成,因此我无法使用BitmapData.generateFilterRect()来获取应用于嵌套精灵的滤镜。
如何获取精灵及其滤镜的大小?