<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/12/03/detecting-when-properties-change-on-a-lineargradient-object-in-flex-gumbo/ -->
<Application name="LinearGradient_propertyChange_test"
        xmlns="http://ns.adobe.com/mxml/2009"
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white"
        initialize="init();"
        viewSourceURL="srcview/index.html">

    <Script>
        <![CDATA[
            import mx.binding.utils.BindingUtils;
            import mx.events.ListEvent;
            import mx.events.PropertyChangeEvent;

            private function init():void {
                linearGrad.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, linearGrad_propertyChange);
            }

            private function linearGrad_propertyChange(evt:PropertyChangeEvent):void {
                arrColl.addItem(evt);
            }
        ]]>
    </Script>

    <Declarations>
        <LinearGradient id="linearGrad"
                spreadMethod="{spreadMethodComboBox.selectedItem}"
                interpolationMethod="{interpolationMethodComboBox.selectedItem}"
                rotation="{rotationSlider.value}"
                scaleX="{scaleXSlider.value}" />
        <ArrayCollection id="arrColl" />
    </Declarations>

    <ApplicationControlBar dock="true">
        <Form styleName="plain">
            <FormItem label="spreadMethod:">
                <ComboBox id="spreadMethodComboBox"
                        dataProvider="[pad,reflect,repeat]" />
            </FormItem>
            <FormItem label="interpolationMethod:">
                <ComboBox id="interpolationMethodComboBox"
                        dataProvider="[linearRGB,rgb]"
                        selectedIndex="1" />
            </FormItem>
            <FormItem label="rotation:">
                <HSlider id="rotationSlider"
                        minimum="0"
                        maximum="360"
                        value="0"
                        snapInterval="1"
                        tickInterval="20"
                        liveDragging="true" />
            </FormItem>
            <FormItem label="scaleX:">
                <HSlider id="scaleXSlider"
                        minimum="0"
                        maximum="100"
                        value="0"
                        snapInterval="1"
                        tickInterval="20"
                        liveDragging="true" />
            </FormItem>
        </Form>
    </ApplicationControlBar>

    <DataGrid id="dataGrid"
            dataProvider="{arrColl}"
            verticalScrollPolicy="on"
            width="100%"
            height="100%">
        <columns>
            <DataGridColumn dataField="type" />
            <DataGridColumn dataField="kind" />
            <DataGridColumn dataField="property"
                    itemRenderer="mx.controls.Label" />
            <DataGridColumn dataField="oldValue" />
            <DataGridColumn dataField="newValue" />
            <DataGridColumn dataField="source"
                    itemRenderer="mx.controls.Label" />
        </columns>
    </DataGrid>

</Application>