設備狀態顯示的flex實現說明
設備狀態顯示的flex實現說明
2010年08月10日
Author: Allan(吳進剛)
做這個圖還是費了點心思,因爲網上實在沒有什麼例子可以借鑑,我感覺flex應該是有這樣的組件可用纔對,但是我查了半天的資料,真是枉費心機,怎麼也沒找到,只有自己想辦法解決了。
怎麼樣讓設備端口的顏色自己閃動,自己變色了,乍一看比較難下手,可是仔細想想卻有兩個辦法可以解決,1:在要動態顯示的地方把它圈住,動態的修改這個地方的background colour;2:在要動態顯示的地方做一個圖片,然後動態的換這張圖片就好了。
在實驗第一方案的時候確實是可以也成功了,可是要想圈個不規則的圈就比較麻煩了,而第二種方案也成功了,但他有個好處就是按照你所需要的樣子,任意的改變,圓形,橢圓行,或者水晶頭的形狀,這樣毫無疑問選擇了第二種方案。
首先請看代碼如下:
//顯示圖片
[b]private[/b] [b]function[/b] show(e:Event):[b]void[/b]{
[b]var[/b] s:String=e.currentTarget.source;
Alert.show(s);
[b]this[/b].imgp.source=s;
[b]if[/b](s.indexOf([b]"red"[/b]) > 0) {
imgp.toolTip=[b]"端口狀態:不可用\n端口編號:1222 \n 端口名稱:dkdfdk"[/b];
} [b]else[/b] [b]if[/b](s.indexOf([b]"green"[/b]) > 0) {
imgp.toolTip=[b]"端口狀態:可用\n端口編號:1222 \n 端口名稱:dkdfdk"[/b];
}[b]else[/b] {
imgp.toolTip=[b]"端口狀態:未知\n端口編號:1222 \n 端口名稱:dkdfdk"[/b];
}
}
Id爲imgBag的是背景圖片,是用來展示設備的;
Id爲imgp 的是需要替換的圖片;
最下面三個是用來去替換imgp的圖片,mouseMove="show(event)" 當鼠標放到圖片上面的時候,調用show(event)函數,然後把這張圖片替換之前的那張。這樣就實現了動態展現設備的狀態;
最後說明如何利用blazeds與 Java server 通信(其實和動態曲線去的動態實現是一樣的),實時展現後臺的數據設備狀態圖:
請看代碼:
-->
mx:ChannelSet:定義一組頻道;
mx:AMFChannel:定義一個頻道;
mx:RemoteObject:定義一個遠程對象;
destination="graphTest1FeedStarter":選定一個server定義的對象;
channelSet="{cs}":選定一個頻道;
mx:Consumer:訂閱目標來接收消息;
destination="graphTest1-feed":選定一個server定義的對象;
channelSet="{cs2}":選定一個頻道;
message="messageHandler(event.message)":接收到消息時分派; 下面是分派消息的函數:爲設備狀態圖綁定的數據源testDatas提供實時數據取代上面show(event)函數;
[b]import[/b] mx.messaging.messages.IMessage;
[b]private[/b] [b]function[/b] messageHandler(message:IMessage):[b]void[/b] {
[b]if[/b] (parseInt(message.body.toString()) <= 15) {
//Alert.show(message.body.toString());
[b]this[/b].imgp.source=[b]"img/redPort.PNG"[/b]
;
imgp.toolTip=[b]"端口狀態:不可用\n端口編號:1111 \n 端口名稱:dkdfdk"[/b];
} [b]else[/b] [b]if[/b] ((15< parseInt(message.body.toString())) && (parseInt(message.body.toString())<= 35)) {
[b]this[/b].imgp.source=[b]"img/greenPort.PNG"[/b]
;
imgp.toolTip=[b]"端口狀態:可用\n端口編號:1111 \n 端口名稱:dkdfdk"[/b];
}[b]else[/b] {
[b]this[/b].imgp.source=[b]"img/brownPort.PNG"[/b]
;
imgp.toolTip=[b]"端口狀態:未知\n端口編號:1111 \n 端口名稱:dkdfdk"[/b];
}}
2010年08月10日
Author: Allan(吳進剛)
做這個圖還是費了點心思,因爲網上實在沒有什麼例子可以借鑑,我感覺flex應該是有這樣的組件可用纔對,但是我查了半天的資料,真是枉費心機,怎麼也沒找到,只有自己想辦法解決了。
怎麼樣讓設備端口的顏色自己閃動,自己變色了,乍一看比較難下手,可是仔細想想卻有兩個辦法可以解決,1:在要動態顯示的地方把它圈住,動態的修改這個地方的background colour;2:在要動態顯示的地方做一個圖片,然後動態的換這張圖片就好了。
在實驗第一方案的時候確實是可以也成功了,可是要想圈個不規則的圈就比較麻煩了,而第二種方案也成功了,但他有個好處就是按照你所需要的樣子,任意的改變,圓形,橢圓行,或者水晶頭的形狀,這樣毫無疑問選擇了第二種方案。
首先請看代碼如下:
//顯示圖片
[b]private[/b] [b]function[/b] show(e:Event):[b]void[/b]{
[b]var[/b] s:String=e.currentTarget.source;
Alert.show(s);
[b]this[/b].imgp.source=s;
[b]if[/b](s.indexOf([b]"red"[/b]) > 0) {
imgp.toolTip=[b]"端口狀態:不可用\n端口編號:1222 \n 端口名稱:dkdfdk"[/b];
} [b]else[/b] [b]if[/b](s.indexOf([b]"green"[/b]) > 0) {
imgp.toolTip=[b]"端口狀態:可用\n端口編號:1222 \n 端口名稱:dkdfdk"[/b];
}[b]else[/b] {
imgp.toolTip=[b]"端口狀態:未知\n端口編號:1222 \n 端口名稱:dkdfdk"[/b];
}
}
Id爲imgBag的是背景圖片,是用來展示設備的;
Id爲imgp 的是需要替換的圖片;
最下面三個是用來去替換imgp的圖片,mouseMove="show(event)" 當鼠標放到圖片上面的時候,調用show(event)函數,然後把這張圖片替換之前的那張。這樣就實現了動態展現設備的狀態;
最後說明如何利用blazeds與 Java server 通信(其實和動態曲線去的動態實現是一樣的),實時展現後臺的數據設備狀態圖:
請看代碼:
-->
mx:ChannelSet:定義一組頻道;
mx:AMFChannel:定義一個頻道;
mx:RemoteObject:定義一個遠程對象;
destination="graphTest1FeedStarter":選定一個server定義的對象;
channelSet="{cs}":選定一個頻道;
mx:Consumer:訂閱目標來接收消息;
destination="graphTest1-feed":選定一個server定義的對象;
channelSet="{cs2}":選定一個頻道;
message="messageHandler(event.message)":接收到消息時分派; 下面是分派消息的函數:爲設備狀態圖綁定的數據源testDatas提供實時數據取代上面show(event)函數;
[b]import[/b] mx.messaging.messages.IMessage;
[b]private[/b] [b]function[/b] messageHandler(message:IMessage):[b]void[/b] {
[b]if[/b] (parseInt(message.body.toString()) <= 15) {
//Alert.show(message.body.toString());
[b]this[/b].imgp.source=[b]"img/redPort.PNG"[/b]
;
imgp.toolTip=[b]"端口狀態:不可用\n端口編號:1111 \n 端口名稱:dkdfdk"[/b];
} [b]else[/b] [b]if[/b] ((15< parseInt(message.body.toString())) && (parseInt(message.body.toString())<= 35)) {
[b]this[/b].imgp.source=[b]"img/greenPort.PNG"[/b]
;
imgp.toolTip=[b]"端口狀態:可用\n端口編號:1111 \n 端口名稱:dkdfdk"[/b];
}[b]else[/b] {
[b]this[/b].imgp.source=[b]"img/brownPort.PNG"[/b]
;
imgp.toolTip=[b]"端口狀態:未知\n端口編號:1111 \n 端口名稱:dkdfdk"[/b];
}}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.