Flex 使用方向键控制光标位置
来源:互联网 发布:手机淘宝查号截图视频 编辑:程序博客网 时间:2024/05/21 09:43
<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
height="700"
verticalScrollPolicy="on" creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.controls.ComboBox;
import mx.controls.Alert;
import mx.events.*;
import mx.events.AdvancedDataGridEvent;
import mx.collections.ArrayCollection;
import mx.controls.dataGridClasses.DataGridColumn;
[Bindable]
private var data1:ArrayCollection=new ArrayCollection([{xh: 1}, {xh: 2}, {xh: 3}, {xh: 4}, {xh: 5}, {xh: 6}]);
private function init():void
{
dg1.addEventListener(FocusEvent.KEY_FOCUS_CHANGE,keyFocusChangeHandler);
}
private function itemEditBeginHandler(event:AdvancedDataGridEvent):void
{
var rowIndex:int=event.rowIndex;
var colIndex:int=event.columnIndex;
var record:Object=data1.getItemAt(rowIndex);
if (colIndex == 2)
{
event.stopImmediatePropagation();
}
}
private function keydownDataGrid(event:KeyboardEvent):void
{
try{
var position:Object = dg1.editedItemPosition;
var offsetRow:int = 0;
var offsetCol:int = 0;
//tab
if(event.keyCode == Keyboard.TAB){
if (event.shiftKey) {
offsetCol = -1;
} else {
offsetCol = 1;
}
} else if (event.keyCode == Keyboard.UP){
offsetRow = -1;
} else if (event.keyCode == Keyboard.DOWN){
offsetRow = 1;
} else if (event.keyCode == Keyboard.LEFT){
offsetCol = -1;
} else if (event.keyCode == Keyboard.RIGHT){
offsetCol = 1;
} else {
return;
}
dg1.editedItemPosition = findNextEditableCell(position,offsetRow,offsetCol);
} catch(e:Error) {
trace(e.message);
}
}
private function findNextEditableCell(v:Object,offsetRow:int=0,offsetCol:int=0):Object
{
if (v == null ||
(offsetRow == 0 && offsetCol == 0) ||
(offsetRow != 0 && offsetCol != 0)) {
return null;
}
var loopCount:int = 0;
var dataEditable:Boolean = false;
while (!dataEditable && (loopCount < 2)) {
if (offsetCol != 0) {
if ((v.columnIndex + offsetCol) < dg1.columns.length &&
(v.columnIndex + offsetCol) >= 0) {
v.columnIndex = v.columnIndex + offsetCol;
} else {
if ((v.rowIndex + offsetCol) < dg1.dataProvider.length &&
(v.rowIndex + offsetCol) >= 0) {
v.rowIndex = v.rowIndex + offsetCol;
if (offsetCol > 0) {
v.columnIndex = 0;
} else {
v.columnIndex = dg1.columns.length -1;
}
} else {
if (offsetCol > 0) {
v.columnIndex = 0;
v.rowIndex = 0;
} else {
v.columnIndex = dg1.columns.length -1;
v.rowIndex = dg1.dataProvider.length -1;
}
loopCount ++;
}
}
} else {
if ((v.rowIndex + offsetRow) < dg1.dataProvider.length &&
(v.rowIndex + offsetRow) >= 0) {
v.rowIndex = v.rowIndex + offsetRow;
} else {
if (offsetRow > 0) {
v.rowIndex = 0;
} else {
v.rowIndex = dg1.dataProvider.length -1;
}
loopCount ++;
}
}
if (dg1.columns[v.columnIndex] != null &&
dg1.columns[v.columnIndex].editable) {
if (v.columnIndex != 2) {
dataEditable = true;
} else {
dataEditable = false;
}
}
}
return v;
}
private function keyFocusChangeHandler(event:FocusEvent):void
{
if (event.keyCode == Keyboard.TAB)
{
event.preventDefault();
}
}
]]>
</mx:Script>
<mx:Canvas verticalScrollBarStyleName="hh"
height="614"
width="831.5"
horizontalCenter="-1"
verticalCenter="0"
verticalScrollPolicy="auto">
<mx:AdvancedDataGrid id="dg1"
designViewDataType="flat"
sortExpertMode="true"
sortableColumns="false"
rowCount="5"
dataProvider="{data1}"
height="441"
width="811.5"
fontSize="14"
fontFamily="Times New Roman"
editable="true"
enabled="true"
x="10"
y="55"
itemEditBegin="itemEditBeginHandler(event)"
keyDown="keydownDataGrid(event)">
<mx:groupedColumns>
<mx:AdvancedDataGridColumn headerText="序号"
dataField="xh"
width="150"
editable="false"/>
<mx:AdvancedDataGridColumn headerText="COLUMN1"
dataField="col1"
width="200"/>
<mx:AdvancedDataGridColumn headerText="COLUMN2"
dataField="col2"
width="200"/>
<mx:AdvancedDataGridColumn headerText="COLUMN3"
dataField="col3"
width="200"/>
<mx:AdvancedDataGridColumn headerText="COLUMN4"
dataField="col4"
width="200"/>
<mx:AdvancedDataGridColumn headerText="COLUMN5"
dataField="col5"
width="200"/>
</mx:groupedColumns>
</mx:AdvancedDataGrid>
</mx:Canvas>
</mx:Application>
0 0
- Flex 使用方向键控制光标位置
- 方向键控制光标在table中跳动
- js 光标位置控制
- js控制光标位置
- 光标位置控制
- js 控制光标位置
- 控制台控制光标位置
- 用javascript控制光标位置
- js获取textarea或者input光标位置,控制光标位置
- Flex控制光标(CursorManager)方法总结
- 控制TextBox中光标的位置
- C#中控制TextBox的光标位置
- js对光标位置的控制
- android EditText控制光标的位置
- javascript控制在光标位置插入文字
- android EditText控制光标的位置
- c++控制命令行光标位置函数
- TC编写资源管理器(使用方向键控制)
- XSS攻击以及防御
- boost库的使用
- An Objective-C message was sent to a deallocated "XXTableViewController"
- 屏幕亮度调节(网络整理,去伪存真)
- 我的毕业十年
- Flex 使用方向键控制光标位置
- Android之解析XML
- python greenlet背景介绍与实现机制
- FREEMARK页面语法
- Android ELF文件格式
- leetcode-list
- 禁止ListView 的Item点击事件或选中事件
- 一个耳熟能详的故事
- Linux系统性能监控常用工具