作者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