- 浏览: 102685 次
- 性别:
- 来自: 大连
文章分类
最新评论
package {
import com.viewtoo.common.view.CommonSprite;
import flash.events.Event;
import fl.video.*;
import flash.display.*;
import flash.events.*;
import flash.geom.*;
/**
* ...
* @author Lancelot
*/
public class VideoGridView extends Sprite {
private var flvPlayer:FLVPlayback = null;
private var len:Number = 3;
private var _w:Number;
private var _h:Number;
//
private var runObject:Array = [];
public function VideoGridView() {
super();
}
protected override function onAdded(evt:Event):void {
super.onAdded(evt);
flvPlayer = new FLVPlayback();
flvPlayer.bufferTime = 3;
flvPlayer.load("../mvGame/1.flv");
flvPlayer.autoPlay = true;
flvPlayer.addEventListener(MetadataEvent.METADATA_RECEIVED, onMetaData);
}
private function onMetaData(evt:MetadataEvent):void {
flvPlayer.width = evt.info.width;
flvPlayer.height = evt.info.height;
_w = flvPlayer.width / len;
_h = flvPlayer.height / len;
flvPlayer.visible = false;
addChild(flvPlayer);
this.addEventListener(Event.ENTER_FRAME, onVideoEnterFrame);
drawVideo();
}
// 开始照相
private function onVideoEnterFrame(evt:Event):void {
var l:Number = runObject.length;
for (var i:Number = 0; i < l; i++) {
var mybmp:BitmapData = runObject[i].mybmpdata;
var matrix:Matrix = runObject[i].matrix;
var rect:Rectangle = runObject[i].ract;
// 绘制9个区域
mybmp.draw(flvPlayer, matrix, null, null, rect);
}
}
private function onImageMouseDownEvent(evt:MouseEvent):void {
var maskView:Sprite = Sprite(evt.currentTarget);
maskView.startDrag(false, null);
maskView.addEventListener(MouseEvent.MOUSE_UP, onImageMouseUpEvent);
}
private function onImageMouseUpEvent(evt:MouseEvent):void {
var maskView:Sprite = Sprite(evt.currentTarget);
maskView.removeEventListener(MouseEvent.MOUSE_UP, onImageMouseUpEvent);
maskView.stopDrag();
}
// 快照
private function drawVideo():void {
for (var x:Number = 0; x < len; x++) {
for (var y:Number = 0; y < len; y++) {
var obj:Object = new Object();
var rect:Rectangle = new Rectangle(_w * x, _h * y, _w, _h);
var matrix:Matrix = new Matrix(1, 0, 0, 1, -rect.x, -rect.y);
// 避免误差
rect.width += 1;
var mybmp:BitmapData = new BitmapData(rect.width, rect.height);
mybmp.draw(flvPlayer, matrix, null, null, rect);
var sp:Sprite = new Sprite();
sp.x = _w * x;
sp.y = _h * y;
sp.addEventListener(MouseEvent.MOUSE_DOWN, onImageMouseDownEvent);
var bit:Bitmap = new Bitmap(mybmp);
sp.addChild(bit);
addChild(sp);
runObject.push( { mybmpdata:mybmp, matrix:matrix, rect:rect } );
}
}
}
}
}
import com.viewtoo.common.view.CommonSprite;
import flash.events.Event;
import fl.video.*;
import flash.display.*;
import flash.events.*;
import flash.geom.*;
/**
* ...
* @author Lancelot
*/
public class VideoGridView extends Sprite {
private var flvPlayer:FLVPlayback = null;
private var len:Number = 3;
private var _w:Number;
private var _h:Number;
//
private var runObject:Array = [];
public function VideoGridView() {
super();
}
protected override function onAdded(evt:Event):void {
super.onAdded(evt);
flvPlayer = new FLVPlayback();
flvPlayer.bufferTime = 3;
flvPlayer.load("../mvGame/1.flv");
flvPlayer.autoPlay = true;
flvPlayer.addEventListener(MetadataEvent.METADATA_RECEIVED, onMetaData);
}
private function onMetaData(evt:MetadataEvent):void {
flvPlayer.width = evt.info.width;
flvPlayer.height = evt.info.height;
_w = flvPlayer.width / len;
_h = flvPlayer.height / len;
flvPlayer.visible = false;
addChild(flvPlayer);
this.addEventListener(Event.ENTER_FRAME, onVideoEnterFrame);
drawVideo();
}
// 开始照相
private function onVideoEnterFrame(evt:Event):void {
var l:Number = runObject.length;
for (var i:Number = 0; i < l; i++) {
var mybmp:BitmapData = runObject[i].mybmpdata;
var matrix:Matrix = runObject[i].matrix;
var rect:Rectangle = runObject[i].ract;
// 绘制9个区域
mybmp.draw(flvPlayer, matrix, null, null, rect);
}
}
private function onImageMouseDownEvent(evt:MouseEvent):void {
var maskView:Sprite = Sprite(evt.currentTarget);
maskView.startDrag(false, null);
maskView.addEventListener(MouseEvent.MOUSE_UP, onImageMouseUpEvent);
}
private function onImageMouseUpEvent(evt:MouseEvent):void {
var maskView:Sprite = Sprite(evt.currentTarget);
maskView.removeEventListener(MouseEvent.MOUSE_UP, onImageMouseUpEvent);
maskView.stopDrag();
}
// 快照
private function drawVideo():void {
for (var x:Number = 0; x < len; x++) {
for (var y:Number = 0; y < len; y++) {
var obj:Object = new Object();
var rect:Rectangle = new Rectangle(_w * x, _h * y, _w, _h);
var matrix:Matrix = new Matrix(1, 0, 0, 1, -rect.x, -rect.y);
// 避免误差
rect.width += 1;
var mybmp:BitmapData = new BitmapData(rect.width, rect.height);
mybmp.draw(flvPlayer, matrix, null, null, rect);
var sp:Sprite = new Sprite();
sp.x = _w * x;
sp.y = _h * y;
sp.addEventListener(MouseEvent.MOUSE_DOWN, onImageMouseDownEvent);
var bit:Bitmap = new Bitmap(mybmp);
sp.addChild(bit);
addChild(sp);
runObject.push( { mybmpdata:mybmp, matrix:matrix, rect:rect } );
}
}
}
}
}
发表评论
-
AS3 经典的代码库
2013-03-29 16:39 03D引擎 Papervision3Dhttp://b ... -
AS3开源资源整理
2013-03-29 16:38 0一个使用Stage3D APIs 实现 ... -
如何自定义VideoPlayer的全屏行为
2012-12-13 16:58 1337Flex4中增加了一个视频播放组件:VideoPlayer,相 ... -
代码改变影片剪辑亮度、色调、高级、透明度的方法
2012-12-03 08:41 876通过Color类来改变影片颜色 亮度:(设置影片明暗效果) ... -
as3自己写皮肤
2012-11-30 09:47 0<?xml version="1.0" ... -
AS3 正则表达式详解
2012-11-30 09:27 01.新建正则表达式,有两 ... -
TweenLite用法
2012-11-30 09:26 0TweenLite 是一个缓动的类 ... -
AS3位图的加载、拷贝、绘制
2012-11-30 09:26 0建Bitmap可以是使用Bitmap ... -
AS3中的反射
2012-11-30 09:25 669什么是反射 反射 (Reflection) 是指在程序在运行时 ... -
AS3文本操作
2012-11-30 09:03 1238设置文本框的边框、背景与前景色 默认状态下,文本框的边框和背景 ... -
as3日期格式化以及htmlText的安全转义类
2012-11-30 08:57 1049package org.juke{ ... -
Flash AS3.0关于TextField的过滤,HTML格式,对齐,换行等介绍
2012-11-30 08:56 1386过滤文字输入 TextField.restrict = &q ... -
AS3碎裂重组特效
2012-11-26 15:04 892碎裂指的是图片的碎裂 那我们要先做的是就是得到这张图片,在a ... -
Flash AS3.0实例---接近鼠标的图片缓动效果
2012-11-26 15:02 1188当鼠标移动到图片的一定位置时,图片会缓冲移动到鼠标位置,在现 ... -
flex air 启动本地应用程序
2012-11-26 09:23 862在air 2.0中,可以利用NativeProcess启动本地 ... -
as3打开和保存本地文件
2012-11-26 08:52 2410package { import flash.displa ... -
FLV视频类播放器全屏切换完整AS代码示例
2012-11-21 10:53 843function setFullScreen() { ... -
as3冒泡排序
2012-11-20 09:12 0<?xml version="1.0" ... -
Flex在Image组件使用蒙板
2012-11-16 17:34 0Flex在Image组件使用蒙板 1.Flex SDK3.0 ... -
Flex导入Excel文件示例
2012-11-16 17:33 01.SDK3.0 2.导入文件用FileFilter过滤。由于 ...
相关推荐
BitmapData.draw方法是ActionScript 3.0中的一个重要功能,主要用在Adobe Flash环境中处理位图数据。这个方法允许开发者将一个显示对象(如Sprite、MovieClip或Bitmap)的可视内容复制到BitmapData对象上,从而实现...
delphi 找图找色 BitmapData.pas 使用方法请到原作者yeye55的blog查看, http://yeye55blog.blog.163.com/blog/static/19724102120111043252016/
BitmapData.pas 和 kbKernel.pas 这两个文件在IT领域中主要涉及到图像处理和自动化操作,特别是游戏或图形应用中的找图找色功能。在本文中,我们将深入探讨这两个关键概念及其在实际编程中的应用。 首先,...
王者找图对比程序,delphi制作,设定一个图,找另一个图上是否有这个图!
BitmapData.zip 文件是一个包含 Delphi 开发中使用的 BitmapData 单元的压缩包。这个单元主要是为了实现图像处理和颜色查找功能,对于 Delphi 开发者来说,它提供了一个高效且方便的工具来搜索和操作图像数据。让...
- BitmapDataExample3.as和BitmapDataExample3.swf:可能演示了使用BitmapData.draw()方法绘制DisplayObject,并可能展示了不同的绘制选项,如旋转、缩放或着色。 - BitmapDataExample5.as和BitmapDataExample5.swf...
bitmapData.draw(displayObject); ``` 4. 读取和修改像素 BitmapData提供了一些方法来读取和修改单个像素,如`getPixel()`和`setPixel()`,以及更高效地处理多像素的`getPixels()`和`setPixels()`。例如: ```...
在本文中,我们将深入探讨如何使用AS3(ActionScript 3)进行等比切割图片,并实现一键保存和自动命名的功能。ActionScript 3是Adobe Flash Professional和Flash Player中用于创建交互式内容的主要编程语言,它提供...
- `BitmapData.dcu`和`BitmapData.pas`是单元文件,通常包含处理图像数据的类或函数。`DCU`文件是编译后的单元,而`PAS`文件是源代码。 - `Unit1.dcu`, `Unit1.dfm`和`Unit1.pas`代表一个名为Unit1的Delphi组件,...
捕获到的视频帧可以通过`BitmapData.draw()`方法绘制到`BitmapData`对象上,然后进一步处理或保存。例如,可以创建一个`BitmapData`实例,绘制视频帧,并将其转换为JPEG: ```actionscript var bitmapData:...
这可以通过`BitmapData.draw()`方法实现,该方法接受一个DisplayObject作为参数,生成对应的BitmapData。 ```actionscript var bitmapData:BitmapData = new BitmapData(displayObject.width, displayObject.height...
as2.0 模拟火焰 import flash.display.* import flash.filters.* import flash.geom.* import de.popforge.bitmap.Shape ...blueSpot.draw( blueSpotClip, new Matrix() ) blueSpotClip.removeMovieClip()
本文将深入探讨一种用于不规则图形之间的高级碰撞检测方法——**BitmapData.hitTest**。这种方法能够有效地检测两个不规则图形之间的碰撞,并且支持透明度,因此在实际应用中具有很大的灵活性。 #### 二、基础知识...
`BitmapData.draw()`方法可以将舞台或者任何显示对象绘制到BitmapData对象上,为截屏提供了基础。 使用这个库的步骤通常如下: 1. 引入库:首先,需要在你的AS3项目中导入所需的库,确保`as3corelib.swc`已经添加...
3. **使用BitmapData.draw**: 在鼠标移动事件的回调函数中,使用`BitmapData.draw`方法将当前鼠标下的图片区域绘制到一个新的`BitmapData`对象上。此方法需要传入要绘制的对象(这里是原始`Bitmap`对象)以及可选的...
在截图场景中,我们需要用到`BitmapData.draw()`方法,将舞台内容绘制到位图数据上。 4. **Bitmap类** `Bitmap`类是AS3的显示对象,它用于显示`BitmapData`对象。当我们将舞台内容转换为`BitmapData`后,通常会...
bitmapData.draw(myDisplayObject); ``` 这将创建一个与myDisplayObject相同尺寸的BitmapData实例,包含该组件的视觉内容。 3. **Matrix变换**:在上述截图过程中,第二个参数Matrix允许你对图片应用各种几何...
- 使用`BitmapData.draw`方法将`Shape`对象绘制到`BitmapData`对象上。 3. **执行碰撞检测**: - 调用`BitmapData.hitTest`方法进行碰撞检测。 #### 五、性能考虑 1. **优化策略**: - 对于大量的对象,可以采用...
这段代码的核心在于`captureImage()`函数,它使用`BitmapData.draw()`方法捕获选定区域的图像,并将其设置到剪贴板上。用户可以通过调整舞台上的矩形来改变截取的区域,当释放鼠标时,图像会被截取并复制到剪贴板。 ...
bitmapData.draw(image); ``` 这里的`image`可以是DisplayObject实例,如Loader或Sprite,它包含你要上传的图像。 2. 将BitmapData编码为ByteArray:使用BitmapData的`encode`方法将BitmapData对象转换为JPEG或PNG...