flashplayer10以后开始支持硬件加速,目前支持openGL2.0。下面是一个实例,先贴上代码。
/**
tb
*/
package
{
import flash.display.Loader;
import flash.display.BitmapData;
import flash.display.Shader;
import flash.display.Shape;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.net.URLRequest;
import flash.net.URLStream;
import flash.utils.ByteArray;
import flash.utils.Timer;
import flash.utils.getTimer;
public class TestShader extends Sprite
{
private var _shape:Shape=new Shape();
private var _bitmapData:BitmapData;
private var _shader:Shader = new Shader();
private var _sl:URLStream=new URLStream();
public function TestShader()
{
this.stage.scaleMode=StageScaleMode.NO_SCALE;
this.stage.align=StageAlign.TOP_LEFT;
this.stage.showDefaultContextMenu=false;
//===========================================
//加载图片
var imgloader:Loader=new Loader();
imgloader.contentLoaderInfo.addEventListener(Event.COMPLETE,imgComplete);
imgloader.load(new URLRequest("image.jpg"));
}
/**
* 加载图片完成
* @param event
*
*/
private function imgComplete(event:Event):void
{
_bitmapData=event.target.content.bitmapData;
_sl.addEventListener(Event.COMPLETE,shaderLoaded);
_sl.load(new URLRequest("Crystallize.pbj"));
}
/**
* 加载pbj文件完成
* @param event
*
*/
private function shaderLoaded(event:Event):void
{
var sls:URLStream= event.target as URLStream;
if(sls==null){
throw new Error("GLSL data is empty or load error");
}
var byArr:ByteArray=new ByteArray();
sls.readBytes(byArr);
//开始着色渲染
_shader.byteCode = byArr;
_shader.data.src.input = _bitmapData;
//添加显示
_shape.x=20;
_shape.y=20;
this.addChild(_shape);
//时间间隔
var time:Timer=new Timer(100);
time.addEventListener(TimerEvent.TIMER,onTime);
time.start();
}
/**
* 时间间隔,动态改变着色渲染
* @param event
*
*/
private function onTime(event:TimerEvent):void
{
_shader.data.size.value = [Math.sin(event.target.currentCount/100)*50];
_shape.graphics.clear();
_shape.graphics.beginShaderFill(_shader);
_shape.graphics.drawRect(0,0,200,200);
}
}
}
分享到:
相关推荐
全书是一个有机的整体,涵盖了Adobe Flash CS4 Professional的基础知识、图形处理、创建和编辑元件、添加动画、关节运动和变形、创建交互式导航、处理声音与视频、使用组件、加载和控制Flash内容、发布Flash文档等...
Flash CS4教程,Flash CS4教程Flash CS4教程Flash CS4教程Flash CS4教程Flash CS4教程Flash CS4教程Flash CS4教程Flash CS4教程 希望对大家有用!
FLASHCS4精华教程全面介绍了Flash CS4中文版的主要功能和面向实际的应用技巧
flash Cs4下载解压可以直接使用。
Flash cs4电子书完整版教程Flash cs4电子书完整版教程Flash cs4电子书完整版教程Flash cs4电子书完整版教程
帮助文件FlashCS4帮助文件FlashCS4
[Flash CS4动画设计[Flash CS4动画设计
Adobe Flash CS4快捷键大全Adobe Flash CS4快捷键大全Adobe Flash CS4快捷键大全Adobe Flash CS4快捷键大全Adobe Flash CS4快捷键大全
flash cs4编译flash cs3或更低版本时需要的文件 放在class下面 解决方法: 1、打开Flash CS4,选择编辑 > 首选参数 > ActionScript项 > ActionScript 2.0 设置 > 点击”+” 2、添加新路径,输入C:\Program...
Flash CS4 帮助文档 CHM Flash CS4 帮助文档 CHM Flash CS4 帮助文档 CHM Flash CS4 帮助文档 CHM Flash CS4 帮助文档 CHM
Adobe Flash CS4 帮助文档 不包含ActionScript2.0部分
Flash CS4动画制作项目实训教程的PPT,这是教材配套的PPT
Flash CS4 help.pdf Flash CS4 help.pdf Flash CS4 help.pdf
Flash CS4案例教程,
flashcs4动画,简单制作
有FLA 及 AS3 源代码 FLASH CS4 适合一般企业网站,
模拟cs程序 模拟cs程序 模拟cs程序 模拟cs程序 模拟cs程序 模拟cs程序 模拟cs程序 模拟cs程序
flash cs4破解 flash cs4破解 flash cs4破解
flash cs4板书 教材 继续深造 初学者也可
[Adobe Flash CS4中文版经典教程].美国Adobe公司.编陈宗斌.译.扫描版