Я встраиваю SVG-графику в свое приложение Flex, используя
package MyUI
{
public class Assets
{
[Embed(source="/assets/pic.svg"]
[Bindable]
public static var svgPic:Class;
}
}
, а затем расширяем класс Tree с помощью своего собственного кода, устанавливая значок при добавлении узла к поставщику данных:
public class MyTree extends Tree
{
public function MyTree()
{
// ...
this.iconField = "svgIcon";
// ...
this.dataProvider = new ArrayCollection;
this.dataProvider.addItem({ /* ... */ svgIcon: MyUI.Assets.svgPic /* ... */ });
// ...
}
}
Теперь у меня есть две вещи, которые я хочу сделать:
- использовать графику SVG в нескольких местах в приложении, масштабируя их до соответствующего размера для каждого внешнего вида, т.е. е. масштабируйте их до нужного размера иконки при использовании их в дереве
- изменить размер иконки во время выполнения, e. г. отображать немного больший значок для выбранных элементов или позволить значку «пульс» в ответ на какое-либо событие
Я прочитал документацию Flex о свойствах 9-фрагментного масштабирования в теге Embed, но думаю, что это не то, что мне нужно.
Edit:
Я безуспешно проверил «похожие вопросы», предложенные SO, в том числе этот:
Flex: изменить встроенный значок и использовать его в кнопке?