作者devilarise (Devil)
看板Flash
標題Re: [問題] 關於AS3.0的拍照功能(PrintScreen)?
時間Mon Nov 23 12:51:51 2009
剛好前幾天做給同事用的code
public class c_SCREENSHOT
{
//存放要截圖的目標容器
private var TARGET:DisplayObjectContainer;
private var DATA:BitmapData;
private var IMG:Bitmap;
private var uiCOMPO:UIComponent = new UIComponent;
private var sprite:Sprite = new Sprite;
private var jpgEnc:JPEGEncoder;
private var imgByteArray:ByteArray = new ByteArray;
private var fileRef:FileReference = new FileReference;
//建構子, 收一DisplayObjectContainer物件, 可以放入Application物件
public function c_SCREENSHOT(target:DisplayObjectContainer)
{
TARGET = target;
TARGET.addChild(uiCOMPO);
uiCOMPO.addChild(sprite);
jpgEnc = new JPEGEncoder(80);
}
//截圖
public function CUT():void
{
DATA = new BitmapData(TARGET.width, TARGET.height);
DATA.draw(TARGET);
//jpg編碼
imgByteArray = jpgEnc.encode(DATA);
}
//存圖
public function SAVE(name:String):void
{
fileRef.save(imgByteArray, name);
}
//秀圖
public function SHOW(X:Number, Y:Number):void
{
IMG = new Bitmap(DATA);
IMG.x = X;
IMG.y = Y;
sprite.addChild(IMG);
}
}
參考看看,
這個code使用上有些限制
請自行注意
1.存檔功能的save函式是在10.0以後的flesh player才有支援的
如果編譯器說找不到這函式
Project > Project > Flex Compiler
改一下Require Flesh Player Version, 10.0.0
2.還是Flesh Player的問題,
使用者啟用這程式, 也要有10.0以上的player才能用
否則 ~ 嘣!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.84.101.104
1F:→ devilarise:補充:CUT跟SAVE請分開使用,別連著呼叫, 會 ~ 嘣! 11/23 12:54
2F:→ devilarise:補充:呼叫CUT後的停頓情形,是編碼動作造成的,無礙 11/23 12:56
3F:推 openyayak:devil大大, 真的非常的感謝您!正在研究您的程式中... 11/23 13:50
4F:→ aquarianboy:補充:是fl"a"sh, 不是fl"e"sh喔 11/23 14:41
5F:推 cjoe:版主mmmm呀! 有心人!! 11/23 14:52
6F:→ cjoe:突然想到個問題,那可以回存到遠端的server嗎? 11/23 14:53
7F:→ openyayak:cjoe大大請問你了解上面的程式碼嗎?因為我不太會運用! 11/23 15:02
8F:推 chengchieh:回存到遠方的話...server上需要有對應的上傳程式... 11/23 17:26
9F:→ chengchieh:等同於把圖檔upload到server上去... 11/23 17:27
10F:→ chengchieh:player 10好像有支援ftp上傳...不過網路上範例only one 11/23 17:27
11F:→ chengchieh:openyayak 要不要提一下是哪邊不會用...? 11/23 17:28
12F:→ chengchieh:devilarise寫的內容還頗清楚的說~~ 11/23 17:28
13F:→ openyayak:很清楚!但是我不太懂怎麼運用~~~ 11/23 17:37
14F:→ openyayak:cheng大,不知道能不能夠製作範例檔供我參考呢?呼呼!!! 11/23 17:39
15F:→ openyayak:因為我AS3算初階程度,但我很想學這個功能! 11/23 17:40
16F:推 kuwood:這個很實用 感恩推=) 11/23 20:16
17F:→ openyayak:1114: public 屬性只能用於套件內部。這錯誤是??? 11/23 22:13
18F:→ aquarianboy:你是怎麼寫的呢? 附個原始檔讓大家看看吧 11/23 23:05
19F:→ openyayak:我只是將上面的建構子的程式照抄....就有問題>"< 11/24 08:49
20F:→ openyayak:誰能夠幫幫忙呢??? 11/24 08:49
21F:→ openyayak:還是有哪些東西我沒設定好??? 11/24 08:50
22F:推 etrexetrex:樓上是照抄到.fla 還是照抄到.as? 11/24 09:01
23F:→ openyayak:我是開啟fla 然後在影格上照抄程式碼~這樣對嗎? 11/24 21:23
24F:→ aquarianboy:附個原始檔會比較簡單 11/24 21:50
25F:推 etrexetrex:印象中不能在fla裡面寫class 11/25 08:16
26F:→ etrexetrex:不知道我的印象是對的還是錯的 0.0 有錯請指正 11/25 08:16
27F:→ openyayak:還是要寫在Action Script檔案裡面呢? 11/25 09:58
28F:→ aquarianboy:想要別人幫你看,請附原始檔!!!!!!!!!!!!!!!!!!!!!!!! 11/25 11:39
29F:推 Angelliya:推devilarise熱心! 另請版大息怒... 11/25 15:18
30F:→ aquarianboy:怒是還好,只是不小心驚嘆號的按鈕壞了而已 :) 11/25 15:24