2013-02-26 23 views
0

我有一个已经满足了我,但想报警信号发送到我的客户端脚本,什么是错,我能够改变线的颜色为红色,我的工作变色行

这样可以发生在不同的线路中,而不是按顺序发生。我怎样才能应用这个设置?

下面的脚本:

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> 
<mx:Script> 
<![CDATA[ 
    import mx.controls.Alert; 
    import mx.controls.TextInput; 
    import mx.events.DataGridEvent; 
    import mx.events.DataGridEventReason; 

    [Bindable] 
    var Acumula:int = 0; 

    protected function checkInput(event:DataGridEvent):void 
    { 


     if (event.reason == DataGridEventReason.NEW_ROW || event.reason == DataGridEventReason.NEW_COLUMN) 
     { 
      var editor:TextInput = (event.currentTarget as DataGrid).itemEditorInstance as TextInput; 
      var text:String = editor.text; 
      var myEditor:TextInput = TextInput(event.currentTarget.itemEditorInstance); 


      Acumula += int(myEditor.text); 
      if(int(Acumula) > int(event.itemRenderer.data.score)) 
       {       
        Acumula = 0; 

        event.preventDefault(); 

        Alert.show(text + "ULTRAPASSOU!"); 

        return; 
       } 

     } 
    } 

]]> 
</mx:Script> 
<mx:ArrayCollection id="arrColl"> 
<mx:source> 
    <mx:Array> 
     <mx:Object label="Student A" score="85"/> 
     <mx:Object label="Student B" score="48"/> 
     <mx:Object label="Student C" score="71"/> 
     <mx:Object label="Student D" score="88"/> 
     <mx:Object label="Student E" score="24"/> 
     <mx:Object label="Student F" score="64"/> 
     <mx:Object label="Student G" score="76"/> 
     <mx:Object label="Student H" score="76"/> 
     <mx:Object label="Student I" score="93"/> 
     <mx:Object label="Student J" score="88"/> 
     <mx:Object label="Student K" score="48"/> 
     <mx:Object label="Student L" score="76"/> 
    </mx:Array> 
</mx:source> 
</mx:ArrayCollection> 
<mx:DataGrid x="10" y="28" dataProvider="{arrColl}" editable="true" itemEditEnd="checkInput(event)"> 
<mx:columns> 
    <mx:DataGridColumn headerText="Column 1" dataField="label" editable="false"/> 
    <mx:DataGridColumn headerText="Column 2" dataField="score" editable="false"/> 

    <mx:DataGridColumn headerText="Column 3" editable="true" dataField="col1"> 
     <mx:itemEditor> 
      <mx:Component> 
       <mx:TextInput restrict="0-9"/> 
      </mx:Component> 
     </mx:itemEditor> 
    </mx:DataGridColumn> 

    <mx:DataGridColumn headerText="Column 4" editable="true" dataField="col2"> 
     <mx:itemEditor> 
      <mx:Component> 
       <mx:TextInput restrict="0-9"/> 
      </mx:Component> 
     </mx:itemEditor> 
    </mx:DataGridColumn> 

    <mx:DataGridColumn headerText="Column 5" editable="true" dataField="col3"> 
     <mx:itemEditor> 
      <mx:Component> 
       <mx:TextInput restrict="0-9"/> 
      </mx:Component> 
     </mx:itemEditor> 
    </mx:DataGridColumn> 

    <mx:DataGridColumn headerText="Column 6" editable="true" dataField="col4"> 
     <mx:itemEditor> 
      <mx:Component> 
       <mx:TextInput restrict="0-9"/> 
      </mx:Component> 
     </mx:itemEditor> 
    </mx:DataGridColumn> 

    <mx:DataGridColumn headerText="Column 7" editable="true" dataField="col5"> 
     <mx:itemEditor> 
      <mx:Component> 
       <mx:TextInput restrict="0-9"/> 
      </mx:Component> 
     </mx:itemEditor> 
    </mx:DataGridColumn> 

</mx:columns> 
</mx:DataGrid> 
<mx:Label x="164" y="211" text="{Acumula}"/> 
</mx:Application> 

为了测试例如脚本,第一行是defalt走在同一行中填充85列,直到值大于85会出现发出警报值。

这次我想把这一行的颜色改成红色。

回答

0

使用spark数据网格,您可以为它蒙皮。在你的皮肤类中设置你的行背景取决于某些条件。下面的代码闪烁一行取决于给定的条件。

<fx:Component id="rowBackground"> 

      <s:Rect implements="spark.components.gridClasses.IGridVisualElement"> 
       <fx:Declarations> 
        <s:Animate id="myBlinkingEffect" 
           repeatCount="0" 
           repeatBehavior="reverse" 
           target="{rowBackgroundFillColor}" 
           duration="1000" 
           > 
         <s:motionPaths> 
          <s:SimpleMotionPath property="alpha" 
               valueFrom="1" 
               valueTo="0" 
               /> 
         </s:motionPaths> 
        </s:Animate> 

       </fx:Declarations> 
       <fx:Script> 
        <![CDATA[ 
         import spark.components.DataGrid; 
         import spark.components.Grid; 

         /** 
         * @private 
         */ 
         public function prepareGridVisualElement(grid:Grid, rowIndex:int, columnIndex:int):void 
         { 
          const dataGrid:DataGrid = grid.dataGrid; 
          if (!dataGrid) 
           return; 

          var item:Object; 
          if (rowIndex < grid.dataProvider.length) { 
           item = grid.dataProvider[rowIndex]; // the data item from this row 


           if (/*your condition*/){ 
            rowBackgroundFillColor.color = 0xFF0000; 
            myBlinkingEffect.play();//Blinking 
           } 

          } 

         } 
        ]]> 
       </fx:Script> 
       <s:fill> 
        <!--- @private --> 
        <s:SolidColor id="rowBackgroundFillColor" color="0xFFFFFF" alpha="0.5"/> 
       </s:fill> 
      </s:Rect> 
     </fx:Component> 
+0

在这里公司我们正在使用Flex 3,无法将所有东西都迁移到FLEX 4 – Eduardo 2013-02-27 12:33:27