Flex中讓鼠標(biāo)移至AdvancedDataGrid的行上不自動(dòng)修改顯示效果
更新時(shí)間:2009年05月25日 18:27:07 作者:
公司項(xiàng)目中出于性能考慮,把mx:Repeater控件換成了mx:AdvancedDataGrid控件來顯示。
注意:事實(shí)上發(fā)現(xiàn),mx:Repeater控件在數(shù)據(jù)大的時(shí)候性能很差。
但是當(dāng)換成AdvancedDataGrid發(fā)現(xiàn),鼠標(biāo)在Grid上移動(dòng)Flex自動(dòng)為焦點(diǎn)所在行修改css,為屏蔽該效果,自定義如下控件:
ApmAdvancedDataGrid.as
package com.nauproject.apm.common.custom
{
import flash.events.MouseEvent;
import mx.controls.AdvancedDataGrid;
import mx.core.mx_internal;
use namespace mx_internal;
public class ApmAdvancedDataGrid extends AdvancedDataGrid
{
public function ApmAdvancedDataGrid()
{
super();
}
override protected function mouseOverHandler(event:MouseEvent):void {
}
override protected function mouseDownHandler(event:MouseEvent):void {
}
}
}
ApmAdvancedDataGridColumn.as
package com.nauproject.apm.common.custom
{
import mx.controls.advancedDataGridClasses.AdvancedDataGridColumn;
[DefaultProperty("apmColumn")]
public class ApmAdvancedDataGridColumn extends AdvancedDataGridColumn
{
public function ApmAdvancedDataGridColumn(columnName:String=null)
{
super(columnName);
}
}
}
用法示例:
<custom:ApmAdvancedDataGrid id="reqResearchSeeds" headerHeight="0"
sortableColumns="false"
selectionMode="multipleCells"
alternatingItemColors="[0xccffcc, 0xfafad2]"
variableRowHeight="true"
designViewDataType="flat"
borderStyle="none"
verticalGridLineColor="#FFFFFF"
themeColor="#FFFFFF"
width="100%"
height="100%">
<custom:columns>
<custom:ApmAdvancedDataGridColumn headerText="Album" dataField="album" width="50"/>
<custom:ApmAdvancedDataGridColumn itemRenderer="com.nauproject.apm.common.custom.LabelTextReqRes"/>
</custom:columns>
</custom:ApmAdvancedDataGrid>
注意:LabelTextReqRes.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<!--[CDATA[
import mx.collections.ArrayCollection;
import mx.controls.AdvancedDataGrid;
]]-->
</mx:Script>
<mx:VBox>
<mx:Label id="lab1" text="◆研究テーマ"/>
<mx:Text id="txt1" htmlText="{data.rthema}" width="455" y="{lab1.height}"/>
<mx:Label id="lab2" text="◆キーワード" y="{lab1.height + txt1.height}"/>
<mx:Text id="txt2" htmlText="{data.keyword}" width="455" y="{lab1.height + txt1.height + lab2.height}"/>
<mx:Label id="lab3" text="◆研究の特徴" y="{lab1.height + txt1.height + lab2.height + txt2.height}"/>
<mx:Text id="txt3" htmlText="{data.rtoku}" width="455" y="{lab1.height + txt1.height + lab2.height + txt2.height + lab3.height}"/>
<mx:Label id="lab4" text="◆技術(shù)移転の可能性" y="{lab1.height + txt1.height + lab2.height + txt2.height + lab3.height + txt3.height}"/>
<mx:Text id="txt4" htmlText="{data.rkanousei}" width="455" y="{lab1.height + txt1.height + lab2.height + txt2.height + lab3.height + txt3.height + lab4.height}"/>
</mx:VBox>
</mx:Canvas>
但是當(dāng)換成AdvancedDataGrid發(fā)現(xiàn),鼠標(biāo)在Grid上移動(dòng)Flex自動(dòng)為焦點(diǎn)所在行修改css,為屏蔽該效果,自定義如下控件:
ApmAdvancedDataGrid.as
復(fù)制代碼 代碼如下:
package com.nauproject.apm.common.custom
{
import flash.events.MouseEvent;
import mx.controls.AdvancedDataGrid;
import mx.core.mx_internal;
use namespace mx_internal;
public class ApmAdvancedDataGrid extends AdvancedDataGrid
{
public function ApmAdvancedDataGrid()
{
super();
}
override protected function mouseOverHandler(event:MouseEvent):void {
}
override protected function mouseDownHandler(event:MouseEvent):void {
}
}
}
ApmAdvancedDataGridColumn.as
復(fù)制代碼 代碼如下:
package com.nauproject.apm.common.custom
{
import mx.controls.advancedDataGridClasses.AdvancedDataGridColumn;
[DefaultProperty("apmColumn")]
public class ApmAdvancedDataGridColumn extends AdvancedDataGridColumn
{
public function ApmAdvancedDataGridColumn(columnName:String=null)
{
super(columnName);
}
}
}
用法示例:
復(fù)制代碼 代碼如下:
<custom:ApmAdvancedDataGrid id="reqResearchSeeds" headerHeight="0"
sortableColumns="false"
selectionMode="multipleCells"
alternatingItemColors="[0xccffcc, 0xfafad2]"
variableRowHeight="true"
designViewDataType="flat"
borderStyle="none"
verticalGridLineColor="#FFFFFF"
themeColor="#FFFFFF"
width="100%"
height="100%">
<custom:columns>
<custom:ApmAdvancedDataGridColumn headerText="Album" dataField="album" width="50"/>
<custom:ApmAdvancedDataGridColumn itemRenderer="com.nauproject.apm.common.custom.LabelTextReqRes"/>
</custom:columns>
</custom:ApmAdvancedDataGrid>
注意:LabelTextReqRes.mxml
復(fù)制代碼 代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<!--[CDATA[
import mx.collections.ArrayCollection;
import mx.controls.AdvancedDataGrid;
]]-->
</mx:Script>
<mx:VBox>
<mx:Label id="lab1" text="◆研究テーマ"/>
<mx:Text id="txt1" htmlText="{data.rthema}" width="455" y="{lab1.height}"/>
<mx:Label id="lab2" text="◆キーワード" y="{lab1.height + txt1.height}"/>
<mx:Text id="txt2" htmlText="{data.keyword}" width="455" y="{lab1.height + txt1.height + lab2.height}"/>
<mx:Label id="lab3" text="◆研究の特徴" y="{lab1.height + txt1.height + lab2.height + txt2.height}"/>
<mx:Text id="txt3" htmlText="{data.rtoku}" width="455" y="{lab1.height + txt1.height + lab2.height + txt2.height + lab3.height}"/>
<mx:Label id="lab4" text="◆技術(shù)移転の可能性" y="{lab1.height + txt1.height + lab2.height + txt2.height + lab3.height + txt3.height}"/>
<mx:Text id="txt4" htmlText="{data.rkanousei}" width="455" y="{lab1.height + txt1.height + lab2.height + txt2.height + lab3.height + txt3.height + lab4.height}"/>
</mx:VBox>
</mx:Canvas>
相關(guān)文章
Flex 自動(dòng)獲取焦點(diǎn) 監(jiān)聽全局鍵盤事件
Flex 編程注意之自動(dòng)獲取焦點(diǎn)、監(jiān)聽全局鍵盤事件2009-07-07
Flex Builder3 官方正式版下載地址附注冊(cè)碼
adobe公司2月25日發(fā)出Flex Builder3 Pro 正式版,可提供下載試用2009-02-02
基于WebService的數(shù)據(jù)訪問(下) Flex與.NET互操作(三)
在上一篇文章《Flex與.NET互操作(二):基于WebService的數(shù)據(jù)訪問(上) 》中介紹了通過<mx:WebService>標(biāo)簽來訪問Webservice。實(shí)際上我們也可以通過編程的方式動(dòng)態(tài)的訪問WebService,F(xiàn)lex SDK為我們提供了WebService類。2009-06-06
Flex ShareObject簡(jiǎn)單應(yīng)用
Share object一般用來保存前來訪問的用戶的個(gè)人信息到用戶的機(jī)器上。比如用戶登陸過后保存他的名字,下次訪問時(shí)自動(dòng)顯示,或者保存用戶的個(gè)性化設(shè)置等等。2009-06-06
Flex與.NET互操作(十三):FluorineFx.Net實(shí)現(xiàn)視頻錄制與視頻回放
本文主要介紹使用FluorineFx.Net來實(shí)現(xiàn)視頻錄制與視頻回放,F(xiàn)luorineFx如同F(xiàn)MS一樣,除了有AMF通信,RTMP協(xié)議,RPC 和遠(yuǎn)程共享對(duì)象外,它同樣具備視頻流服務(wù)的功能。2009-06-06
Flex結(jié)合JavaScript讀取本地路徑的方法
鑒于adobe并沒有提供FileReference對(duì)瀏覽的文件的完整路徑的接口。只能采用JS和fileinput控件來獲取本地路徑了。2009-02-02

