最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Flex 畫面快照截圖及顯示實現(xiàn)代碼

 更新時間:2009年10月26日 22:31:51   作者:  
在軟件開發(fā)過程中經(jīng)常會有對畫面進(jìn)行快照截圖的需求,例如把畫面當(dāng)前顯示的狀態(tài)捕捉下來保存成圖片。接下來討論如何在flex中對畫面進(jìn)行截圖,畫面截圖完成后怎樣再顯示到畫面上。
一、對指定畫面進(jìn)行快照、截圖。
在Flex SDK中flash.display包下面有兩個類Bitmap和BitmapData。在flex中可以通過兩個類對圖片進(jìn)行操作。BitmapData類中有一個draw方法這個方法的第一個參數(shù)是進(jìn)行畫面截圖的源對象,這個對象必須實現(xiàn)IBitmapDrawable接口。而DisplayObject類實現(xiàn)了這個接口,DisplayObject是所有可見控件的先祖類,也就意味著所有在flex可以看到的畫面、控件都可以用draw方法來進(jìn)行快照截圖。
具體的代碼如下:
復(fù)制代碼 代碼如下:

private var bmpImage:Bitmap = null;
private function onClick():void
{
//創(chuàng)建一個大小和截圖對象一致的圖片
var bmpData:BitmapData = new BitmapData(source.width,source.height);
//進(jìn)行快照截圖,其中第二個參數(shù)Matrix是對圖片進(jìn)行變換用的,例如旋轉(zhuǎn)縮放等。
//如果圖片不需要變換可以用new Matrix()或者null都可以。
bmpData.draw(source,new Matrix());
//創(chuàng)建Bitmap對象
bmpImage = new Bitmap(bmpData);
}

BitmapData對象不能直接顯示到畫面上,所以需要把BitmapData對象封裝到Bitmap中,按下截圖按鈕后,Panel的快照就生成了,保存到了Bitmap對象中。
效果圖片:
效果圖A
二、將捕獲到的截屏圖片顯示到畫面上。
接下來就是把Bitmap對象顯示到畫面上,這里需要借助UIComponent類。由于直接把Bitmap對象加到Canvas等容器中,運行時會出錯,因為容器中添加的子對象必須是UIComponent的子類,而Bitmap不是,所以需要UIComponent類來封裝一層。然后把UIComponent對象加入到Canvas容器中,這樣圖片就顯示出來了。
代碼如下所示:
復(fù)制代碼 代碼如下:

private function onShow():void
{
//創(chuàng)建一個UIComponent對象
var uic:UIComponent = new UIComponent();
//將Bitmap對象加入到UIComponent對象中
uic.addChild(bmpImage);
//將UIComponent對象加入Canvas中
showImage.addChild(uic);
}

先按下截圖按鈕進(jìn)行截圖操作,然后按下顯示按鈕把截圖顯示到Canvas中。效果如圖所示。
效果圖B
三、以下是這個程序的完整代碼:
復(fù)制代碼 代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
fontFamily="宋體" fontSize="12" width="831" height="448">
<mx:Panel id="source" x="26" y="77" width="320" height="263" layout="absolute">
<mx:TextInput x="91" y="51"/>
<mx:TextInput x="91" y="106"/>
<mx:Button x="73.5" y="158" label="取 消"/>
<mx:Button x="172.5" y="158" label="確 定"/>
<mx:Label x="32" y="53" text="用戶名:"/>
<mx:Label x="32" y="108" text="密 碼:"/>
<mx:Label x="109" y="10" text="用戶登錄" fontWeight="bold"/>
</mx:Panel>
<mx:Canvas id="showImage" x="427" y="58" width="347" height="292">
</mx:Canvas>
<mx:Label x="124" y="32" text="截圖區(qū)域"/>
<mx:Label x="562" y="32" text="截圖顯示區(qū)域"/>
<mx:Button x="147" y="394" label="截圖" click="onClick()"/>
<mx:Button x="548" y="394" label="顯示" click="onShow()"/>
<mx:Script>
<!--[CDATA[
import mx.core.UIComponent;
private var bmpImage:Bitmap = null;
private function onClick():void
{
//創(chuàng)建一個大小和截圖對象一致的圖片
var bmpData:BitmapData = new BitmapData(source.width,source.height);
//進(jìn)行快照截圖,其中第二個參數(shù)Matrix是對圖片進(jìn)行變換用的,例如旋轉(zhuǎn)縮放等。
//如果圖片不需要變換可以用new Matrix()或者null都可以。
bmpData.draw(source,new Matrix());
//創(chuàng)建Bitmap對象
bmpImage = new Bitmap(bmpData);
}
private function onShow():void
{
//創(chuàng)建一個UIComponent對象
var uic:UIComponent = new UIComponent();
//將Bitmap對象加入到UIComponent對象中
uic.addChild(bmpImage);
//將UIComponent對象加入Canvas中
showImage.addChild(uic);
}
]]-->
</mx:Script>
</mx:Application>

四、總結(jié)。
雖然可以用Bitmap和BitmapData類進(jìn)行截圖和現(xiàn)實,但是flex不能直接讀寫文件。圖片的保存還需要后臺程序的配合來完成。

相關(guān)文章

  • FLEX 日期時間操作

    FLEX 日期時間操作

    找了很久,還是沒有找到包含時間以下的東西,算了,還是麻煩一點,用日期加時間來處理吧.這里需要注意的是,它的時間日期跟其他語言是差不多的.所以要注意進(jìn)行處理.
    2009-07-07
  • java TO ArrayCollection

    java TO ArrayCollection

    因為new ArrayCollection 需要 array對象,event.result是空間返回對象(JAVA方法返回值)所以類型不同無法使用new 構(gòu)造ArrayCollection ,可是惡心的FLEX偏偏支持javalist=ArrayCollection
    2009-06-06
  • Flex Data Binding詳解

    Flex Data Binding詳解

    Data BindIng簡單的說就是當(dāng)綁定源屬性發(fā)生變化時,F(xiàn)lex 會把綁定源變化后屬性的值賦給目的物的屬性。做到了數(shù)據(jù)同步。
    2009-09-09
  • AS3 Flex基礎(chǔ)知識100條

    AS3 Flex基礎(chǔ)知識100條

    找資料的時候 看到一篇文章很實用 對新手的基本問題都可以找到,方便查找答案的時間
    2009-05-05
  • Flex 動態(tài)綁定BindingUtils.bindProperty

    Flex 動態(tài)綁定BindingUtils.bindProperty

    Flex 動態(tài)綁定BindingUtils.bindProperty實現(xiàn)代碼。
    2009-06-06
  • Flex 放大鏡效果實現(xiàn)代碼

    Flex 放大鏡效果實現(xiàn)代碼

    Flex 放大鏡效果實現(xiàn)代碼
    2009-08-08
  • flex 簡單例子(含實例效果圖 源碼)

    flex 簡單例子(含實例效果圖 源碼)

    要過節(jié)了,工作任務(wù)也完成了,閑來沒事,研究svg,感覺市場上對svg支持度不高,導(dǎo)致了這項技術(shù)不能夠被IT群眾充分的接納,一個沒有人支持的技術(shù),她必然也不會有很大的前景。研究來研究去,還是覺得flex比較好玩。
    2009-09-09
  • Flex TileList自定義間距和theme樣式

    Flex TileList自定義間距和theme樣式

    使用過TileList的朋友可能知道,該組件沒有Item與Item之間的間距設(shè)置。而且theme也沒有辦法象linkbar那樣設(shè)置樣式corner-radius改變形狀。
    2009-06-06
  • Flex3 界面布局教程

    Flex3 界面布局教程

    國慶期間,做了不少基于 flex 的開發(fā)工作,對 flex 的布局容器有了進(jìn)一步深入的理解,也找到不少非常棒的文章,分享到這里方便一下大家。
    2009-10-10
  • Flex ShareObject簡單應(yīng)用

    Flex ShareObject簡單應(yīng)用

    Share object一般用來保存前來訪問的用戶的個人信息到用戶的機(jī)器上。比如用戶登陸過后保存他的名字,下次訪問時自動顯示,或者保存用戶的個性化設(shè)置等等。
    2009-06-06

最新評論

赤城县| 穆棱市| 平阳县| 根河市| 望城县| 仙桃市| 江永县| 浙江省| 奇台县| 红桥区| 阜阳市| 航空| 广宗县| 时尚| 桂林市| 鄂托克前旗| 印江| 旺苍县| 宜春市| 丹凤县| 平舆县| 紫云| 山西省| 临武县| 久治县| 太仆寺旗| 读书| 恩平市| 改则县| 阿拉尔市| 渑池县| 永顺县| 托克逊县| 遵化市| 开鲁县| 依安县| 逊克县| 瑞安市| 金坛市| 固安县| 深水埗区|