更改数据网格行上的光标

时间:2012-01-11 20:53:30

标签: actionscript-3 flex datagrid cursor

我正在开发一个flex项目,并且有一个数据网格,我希望当将鼠标悬停在包含数据的任何行上时,光标会发生变化。

我在数据网格上有双击启用,我想指出它们可以点击它们悬停的行。

这是我尝试过的,但似乎只是在数据网格上使用手形光标而不是行数据。

    <mx:DataGrid x="9" y="47" width="330" height="244" useHandCursor="true" buttonMode="true" mouseChildren="true" horizontalScrollPolicy="{ScrollPolicy.AUTO}" styleName="resultgrid" dataProvider="{acLatest}" doubleClickEnabled="true" itemDoubleClick="doubleClickoverview()"  id="overviewLatest_dg">
     <mx:columns>                   
        <mx:DataGridColumn headerText="Tag" id="overviewLatest_dg_animal_ptag" visible="true" dataField="animal_ptag" width="110" />
        <mx:DataGridColumn headerText="Status" id="overviewLatest_dg_status_status" visible="true" dataField="status_status" width="110"/>
        <mx:DataGridColumn headerText="Sex" id="overviewLatest_dg_animal_sex" visible="true" dataField="animal_sex" width="110"/>
     </mx:columns>
    </mx:DataGrid>

2 个答案:

答案 0 :(得分:0)

我会创建itemRenderer并为MouseEvent.ROLL_OVERMouseEvent.ROLL_OUT事件添加事件侦听器。在事件处理程序中,您可以使用cursorManager更改光标。这还有一个额外的好处,允许您根据用户将光标悬停在其上的行的某些数据或条件来更改光标。

Here's an example在鼠标悬停在组件上时更改光标。希望这能让你开始朝着正确的方向前进。

答案 1 :(得分:0)

结束使用itemRollOver&amp; datagrid上的itemRollOut。

然后创建了一个简单的类,将光标更改为手部图像。

<强>数据网格:

itemRollOver="Cursors.setHandCursor()" itemRollOut="CursorManager.removeAllCursors()"

光标类:

package com {

  import mx.managers.CursorManager;
  import mx.managers.CursorManagerPriority;

  public class Cursors extends CursorManager {

    private static var handCursorList:Array = [];

    public static function setHandCursor():void {   
      [Embed(source="../images/hand.png")]   
      var handCursorClass:Class;
      handCursorList.push(setCursor(handCursorClass, CursorManagerPriority.MEDIUM));
    }  
  } 
}