以下是自己写的一个,工具类;
hotArea是热区对象,canvas是源位图对象
作用是,从canvas中,截图一个像素级的矢量图对象,而且是Sprite类(意味着可以有丰富的事件交互)
源码:
/*****************************************************
*
* The Initial Developer of the Original Code is Administrator.
*
* HotAreaToGraphicsUtil.as
* Create By Jave.Lin(afeng)
* 2013-1-3 下午22:07:18
*
*****************************************************/
package cn.taole.webgame.jhm.plugin.garden.view.util
{
import cn.taole.webgame.jhm.common.util.CommonUtil;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.DisplayObject;
import flash.display.DisplayObjectContainer;
import flash.display.Sprite;
import flash.geom.Matrix;
import flash.geom.Rectangle;
import taole.display.ui.core.UIBitmap;
/** 热区转矢量对象的工具类 */
public class HotAreaToGraphicsUtil{
public static function getGraphicObj(hotArea:DisplayObject,canvas:Bitmap):Sprite{
var uiBmp:UIBitmap=canvas as UIBitmap;
var bmd:BitmapData=new BitmapData(hotArea.width,hotArea.height,true,0);
bmd.copyPixels(canvas.bitmapData,new Rectangle(hotArea.x,hotArea.y,bmd.width,bmd.height),CommonUtil.EMPTY_POINT);
var result:Sprite=new Sprite();
result.graphics.clear();
result.graphics.beginBitmapFill(bmd);
var hotAreaBmd:BitmapData=((hotArea as DisplayObjectContainer).getChildAt(0) as Bitmap).bitmapData;
var w:Number = bmd.width;
var h:Number = bmd.height;
for (var i:uint=0; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?