Flex Gumbo中如何通过监听propertyChange事件检测LinearGradient对象属性值是否改变的例子

By Minidxer | May 31, 2009

接下来的例子演示了Flex Gumbo中如何通过监听propertyChange事件,检测LinearGradient对象属性值是否改变。

让我们先来看一下Demo可以右键View Source或点击这里察看源代码):


下面是完整代码(或点击这里察看):

Download: main.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Application name="LinearGradient_propertyChange_test"
  3.         xmlns="http://ns.adobe.com/mxml/2009"
  4.         layout="vertical"
  5.         verticalAlign="middle"
  6.         backgroundColor="white"
  7.         initialize="init();">
  8.  
  9.     <Script>
  10.         <![CDATA[
  11.             import mx.events.ListEvent;
  12.             import mx.events.PropertyChangeEvent;
  13.  
  14.             private function init():void {
  15.                 linearGrad.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, linearGrad_propertyChange);
  16.             }
  17.  
  18.             private function linearGrad_propertyChange(evt:PropertyChangeEvent):void {
  19.                 arrColl.addItem(evt);
  20.             }
  21.         ]]>
  22.     </Script>
  23.  
  24.     <Declarations>
  25.         <LinearGradient id="linearGrad"
  26.                 spreadMethod="{spreadMethodComboBox.selectedItem}"
  27.                 interpolationMethod="{interpolationMethodComboBox.selectedItem}"
  28.                 rotation="{rotationSlider.value}"
  29.                 scaleX="{scaleXSlider.value}" />
  30.         <ArrayCollection id="arrColl" />
  31.     </Declarations>
  32.  
  33.     <ApplicationControlBar dock="true">
  34.         <Form styleName="plain">
  35.             <FormItem label="spreadMethod:">
  36.                 <ComboBox id="spreadMethodComboBox"
  37.                         dataProvider="[pad,reflect,repeat]" />
  38.             </FormItem>
  39.             <FormItem label="interpolationMethod:">
  40.                 <ComboBox id="interpolationMethodComboBox"
  41.                         dataProvider="[linearRGB,rgb]"
  42.                         selectedIndex="1" />
  43.             </FormItem>
  44.             <FormItem label="rotation:">
  45.                 <HSlider id="rotationSlider"
  46.                         minimum="0"
  47.                         maximum="360"
  48.                         value="0"
  49.                         snapInterval="1"
  50.                         tickInterval="20"
  51.                         liveDragging="true" />
  52.             </FormItem>
  53.             <FormItem label="scaleX:">
  54.                 <HSlider id="scaleXSlider"
  55.                         minimum="0"
  56.                         maximum="100"
  57.                         value="0"
  58.                         snapInterval="1"
  59.                         tickInterval="20"
  60.                         liveDragging="true" />
  61.             </FormItem>
  62.         </Form>
  63.     </ApplicationControlBar>
  64.  
  65.     <DataGrid id="dataGrid"
  66.             dataProvider="{arrColl}"
  67.             verticalScrollPolicy="on"
  68.             width="100%"
  69.             height="100%">
  70.         <columns>
  71.             <DataGridColumn dataField="type" />
  72.             <DataGridColumn dataField="kind" />
  73.             <DataGridColumn dataField="property"
  74.                     itemRenderer="mx.controls.Label" />
  75.             <DataGridColumn dataField="oldValue" />
  76.             <DataGridColumn dataField="newValue" />
  77.             <DataGridColumn dataField="source"
  78.                     itemRenderer="mx.controls.Label" />
  79.         </columns>
  80.     </DataGrid>
  81.  
  82. </Application>
代码:Peter deHaan 翻译/整理/编译:中文Flex例子

Topics: Gumbo, LinearGradient | No Comments » | Tags: , , ,

Search Posts