Flex中默认Resize光标的使用
转载] Flex中默认Resize光标的使用
2008-02-26 09:51
http://blog.chinahr.com/blog/srivatsa/post/80631
http://blog.chinahr.com/blog/srivatsa/post/80631
Flex中默认Resize光标的使用
最近应客户要求,一个面板需要可调整宽度,编码到是很简单,就是找不到合适的Resize的Cursor,所有就想想到DataGrid调整列宽度的时候不是会显示一个Resize光标吗,那么是不是可以和DataGrid用一样的Cursor呢,一查API,DataGrid里面用的是stretchCursor Style,而这个stretchCursor默认值是mx.skins.halo.DataGridStretchCursor,可是mx.skins.halo并没有这个所谓的DataGridStretchCursor,TNND,trace了下,竟然是[class _DataGridStyle__embed_css_Assets_swf_cursorStretch_1564262968],而Flex框架里面的Default.css的定义又是:
DataGrid { stretchCursor: Embed(source="Assets.swf",symbol="cursorStretch"); }
看样子是官方的文档有问题了,不过,这倒没关系,不能直接应用,绕下就是了,通过DataGrid获取就是了,下面是获取并设置Cursor的代码:
import mx.managers.CursorManager; import mx.managers.CursorManagerPriority; import mx.controls.DataGrid; ... var dg:DataGrid=new DataGrid(); this.addChild(dg); stretchCursorClass = dg.getStyle("stretchCursor"); this.removeChild(dg); CursorManager.setCursor(stretchCursorClass,CursorManagerPriority.HIGH);
只所有要先addChild又removeChild,是因为只有将DataGrid添加到Disaplay中才会实例化stretchCursor。