В моем проекте ActionScript 3 графические объекты FXG импортируются как экземпляры SpriteVisualElement
следующим образом:
// with the FXG file myPackage/myFXGFile.fxg
import myPackage.myFXGFile;
var myFXG:SpriteVisualElement = new myPackage.myFXGFile();
addChild( myFXG );
Файлы FXG имеют «кадры», определенные с использованием свойств viewWidth
и viewHeight
, равных <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>
В коде мне нужно знать размеры этого кадра, то есть значения viewWidth
и viewHeight
. Есть ли способ получить их из импортированных файлов? Есть ли решение без разбора файла FXG вручную?
Обновление : Я только что просмотрел все методы и свойства, доступные для SpriteVisualElement
, а getPreferredBoundsWidth()
и - Height()
, кажется, делают то, что я ищу. Однако я не достаточно уверен в источнике Flex, чтобы найти источник этих значений, и пара условий заставляет меня сомневаться. Это правильный и рекомендуемый способ?