1

在我的 ActionScript 3 项目中,FXG 图形作为以下实例导入SpriteVisualElement

// with the FXG file myPackage/myFXGFile.fxg
import myPackage.myFXGFile;
var myFXG:SpriteVisualElement = new myPackage.myFXGFile();
addChild( myFXG );

FXG 文件具有使用viewWidthviewHeight属性定义的“框架” <Graphic>。下面是一个简单图像的示例。它由一个以较大矩形为中心的矩形组成,只有前者是视图“框架”的一部分。

<?xml version="1.0" encoding="utf-8"?>
<Graphic viewWidth="100" viewHeight="200" xmlns="http://ns.adobe.com/fxg/2008" version="2">    
    <Rect id="rect1" width="120" height="240" x="-10" y="-20">
         <fill><SolidColor color="#FF0000"/></fill>
    </Rect>
    <Rect id="rect1" width="100" height="200" x="0" y="0">
         <fill><SolidColor color="#0000FF"/></fill>
    </Rect>
</Graphic>

在代码中,我需要知道这个框架的尺寸,即 和 的viewWidthviewHeight。有没有办法从导入的文件中获取它们?有没有不手动解析FXG文件的解决方案?

更新:我只是查看了所有可用的方法和属性SpriteVisualElementgetPreferredBoundsWidth()并且 -Height()似乎在做我正在寻找的东西。不过,我对 Flex 来源没有足够的信心来找到这些值的来源,而且有几个条件让我不确定。这是正确和推荐的方式吗?

4

1 回答 1

0

SpriteVisualElement是一个继承自FlexSpriteand的类flash.display.Sprite。FXG 就是一个例子:

如果您使用 ActionScript 将 FXG 组件添加到应用程序,则其类型应为SpriteVisualElement.

getPreferredBoundsWidth()除了上述and之外,还有另外两种方法getPreferredBoundsHeight()

getLayoutBoundsHeight() 方法   
公共函数 getLayoutBoundsHeight(postLayoutTransform:Boolean = true):Number

语言版本:ActionScript 3.0
产品版本:Flex 4
运行时版本:Flash Player 10、AIR 1.5

返回元素的布局高度。这是元素用于在屏幕上绘制的大小。

参数
    postLayoutTransform:Boolean (default = true) — 当 postLayoutTransform 为 true 时,该方法返回元素的边界框宽度。边界框位于元素的父坐标空间中,由元素的布局大小和布局变换矩阵计算得出。

退货
    Number — 元素的布局高度。


getLayoutBoundsWidth() 方法   
公共函数 getLayoutBoundsWidth(postLayoutTransform:Boolean = true):Number

语言版本:ActionScript 3.0
产品版本:Flex 4
运行时版本:Flash Player 10、AIR 1.5

返回元素的布局宽度。这是元素用于在屏幕上绘制的大小。

参数
    postLayoutTransform:Boolean (default = true) — 当 postLayoutTransform 为 true 时,该方法返回元素的边界框宽度。边界框位于元素的父坐标空间中,由元素的布局大小和布局变换矩阵计算得出。

退货
    Number — 元素的布局宽度。

有没有不手动解析FXG文件的解决方案?

使用FXG 编辑器作为替代。

参考

于 2016-09-26T16:18:34.247 回答