Flex中讓鼠標(biāo)移至AdvancedDataGrid的行上不自動修改顯示效果
更新時間:2009年05月25日 18:27:07 作者:
公司項(xiàng)目中出于性能考慮,把mx:Repeater控件換成了mx:AdvancedDataGrid控件來顯示。
注意:事實(shí)上發(fā)現(xiàn),mx:Repeater控件在數(shù)據(jù)大的時候性能很差。
但是當(dāng)換成AdvancedDataGrid發(fā)現(xiàn),鼠標(biāo)在Grid上移動Flex自動為焦點(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上移動Flex自動為焦點(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 編程注意之性能優(yōu)化、垃圾回收的一些總結(jié)
自從開始做Flex、ActionScript 3.0的項(xiàng)目,我就一直與垃圾回收、性能優(yōu)化這些問題打交道,因此也總結(jié)了一些優(yōu)化的方案,同時在一些QQ群中也得到了一些“高人”的指點(diǎn),因此將此內(nèi)容記錄一下。2009-07-07Flex與.NET互操作(十):FluorineFx.Net的及時通信應(yīng)用(ApplicationAdapter)(一)
使用FluorineFx.Net開發(fā)的每一個實(shí)時通訊功能應(yīng)用都擁有一個應(yīng)用程序適配器(ApplicationAdapter),用來管理整個實(shí)時通訊應(yīng)用的生命周期,以及接受和拒絕客戶端的連接等。2009-06-06使用asx3m與xstream配合解決flex與java利用httpservice傳遞xml數(shù)據(jù)問題
過年期間抽空在弄flex前端對象與后端java對象利用httpservice交互的問題。比如前端需要user list數(shù)據(jù),構(gòu)造了flex user object類。2009-02-02Flex 如何得到itemRenderer里面的內(nèi)容
itemRenderer里面的內(nèi)容 獲取技巧。2009-07-07Flex與.NET互操作 了解FluorineFx的環(huán)境配置(遠(yuǎn)程對象、網(wǎng)關(guān)、通道、目的地)
Flex中的遠(yuǎn)程對象訪問,也就是服務(wù)端提供一個遠(yuǎn)程服務(wù)對象(RemotingService Object),在Flex客戶端通過相應(yīng)的訪問技術(shù)去調(diào)用遠(yuǎn)程對象的過程。2009-06-06