Как изменить размер значков в элементе управления Tree во Flex? - PullRequest
0 голосов
/ 14 января 2009

Я встраиваю 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: изменить встроенный значок и использовать его в кнопке?

Ответы [ 2 ]

1 голос
/ 14 января 2009

Подкласс mx.controls.treeClasses.TreeItemRenderer и задайте для него размер значка в соответствии с желаемыми измерениями или создайте собственную реализацию средства визуализации элементов, используя те же интерфейсы, что и TreeItemRenderer. Установите средство визуализации пользовательских элементов с помощью свойства itemRenderer:

exampleTree.itemRenderer = new ClassFactory( ExampleCustomItemRendererClass );
0 голосов
/ 14 января 2009

Ответ на этот вопрос может указать вам верное направление, не зная больше о проблеме, с которой вы столкнулись:

Flex: изменить встроенный значок и использовать его в кнопке?

Надеюсь, это поможет!

...