Flex Element неправильно сохраняет свойства предыдущего родителя - как мне его сбросить? - PullRequest
1 голос
/ 14 октября 2011

Я хочу поместить элемент в другой компонент (в данном случае это шаблон печати), распечатать его, а затем вернуть на свое место. Проблема в том, что когда я его возвращаю, у него есть свойства шаблона печати! Вот упрощенный пример. Когда вы нажимаете «Печать», этикетка удаляется, а затем возвращается, но при возврате на нее влияет заполнение шаблона печати! Зачем? Как я могу как-то обновить его до нужных свойств? Я попробовал все недействительные ... методы и parentChanged (), но ничего не получалось.

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="200">

    <fx:Script>
        <![CDATA[
            import spark.components.VGroup;
            protected function button1_clickHandler(event:MouseEvent):void {
                var printTemplate:VGroup = new VGroup();
                printTemplate.paddingTop = 50;
                printTemplate.paddingLeft = 30;

                printTemplate.addElement(label);
                addElement(printTemplate);
                validateNow();

                // print

                removeElement(printTemplate);
                addElement(label);
            }

        ]]>
    </fx:Script>

    <s:Button label="Print" right="0" click="button1_clickHandler(event)"/>
    <s:Label id="label" text="This is the label text, it should appear at the top-left."/>

</s:Application>

Ответы [ 2 ]

0 голосов
/ 17 октября 2011

ОК, я взломал решение.Поместите это перед добавлением метки обратно на свое место:

var vg:VGroup = new VGroup();
vg.addElement(label);
addElement(vg);
validateNow();
removeElement(vg);

Затем он получает отступ от "vg", у которого нет набора отступов.Ура.Еще один маленький хак для обхода ошибки Flex.

0 голосов
/ 14 октября 2011

Я бы порекомендовал вам иметь отдельный вид печати -компонент, который имеет отдельную метку, которая вам нужна только для передачи правильных данных.

...