`

flash cs4 openGL 硬件加速研究

阅读更多
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);
		}
	}
}
分享到:
评论

相关推荐

    flash cs4flash Cs4下载解压可以直接使用

    Adobe Flash CS4是一款由Adobe公司推出的交互式矢量图和Web动画设计工具,它在Web开发领域占有重要的地位,尤其在创建动态网页内容、在线多媒体交互以及游戏制作方面有着广泛的应用。这款软件是Flash Professional...

    Flash CS4中文版经典教程.pdf

    ### Flash CS4中文版经典教程知识点总结 #### 一、Adobe Flash CS4 Professional 软件简介 **Adobe Flash CS4 Professional** 是一款由Adobe公司推出的专业矢量动画创作工具,广泛应用于网络动画、游戏开发、...

    Flash CS4教程

    《Flash CS4教程》 Adobe Flash CS4 Professional是一款强大的交互式多媒体创作工具,它被广泛应用于网页动画制作、游戏开发、视频编辑以及丰富的互联网应用程序(RIA)设计。本教程旨在帮助用户掌握Flash CS4的...

    Flash CS4 help.pdf

    《Flash CS4帮助文档》是Adobe公司为用户提供的关于Flash CS4版本的详细教程和参考资料。这个PDF文件以及配套的在线文本文件(Flash CS4 Help_online.txt)旨在帮助用户掌握这款强大的矢量动画和交互式内容创作工具...

    FlashCS4中文编程教程

    5. **组件与库管理**:学习如何使用Flash CS4的组件库,这些预设的可重用元素能加速开发过程。同时,理解如何管理和组织库资源,以便在项目中高效复用。 6. **动画制作**:通过传统补间、形状补间和骨骼动画,你...

    FLASH CS4精华教程

    FLASHCS4精华教程全面介绍了Flash CS4中文版的主要功能和面向实际的应用技巧

    flashCS4的源文件

    《深入探索Flash CS4源文件》 Flash CS4是一款经典的动画设计与开发工具,它以其强大的矢量图形绘制、交互式内容创作以及丰富的多媒体整合能力,一直以来都是数字媒体设计师的重要工具。本压缩包包含了多种类型的...

    Flash CS4动画制作教程

    《Flash CS4动画制作教程》是一份专门为初学者设计的学习资料,旨在帮助用户掌握Adobe Flash CS4这款强大的动画创作工具。本教程详细介绍了Flash CS4的各项功能和动画制作的基本流程,旨在让学习者逐步理解并熟练...

    Flash CS4动画制作项目实训教程PPT

    **Flash CS4动画制作项目实训教程PPT** Flash CS4是Adobe公司开发的一款强大的二维动画创作工具,广泛应用于网页设计、游戏开发、教育演示、广告制作等领域。本实训教程PPT旨在帮助学习者掌握Flash CS4的核心功能和...

    [Flash CS4动画设计

    《Flash CS4动画设计》是关于使用Adobe Flash CS4这一专业动画制作软件进行动画创作的知识体系。Flash CS4是Flash系列中的一个重要版本,它在前代的基础上进行了许多改进,为设计师提供了更强大的工具和功能,使得...

    Flash CS4 官方帮助文档

    《Flash CS4 官方帮助文档》是Adobe公司为用户提供的详尽教程,旨在帮助用户掌握Flash CS4的各项功能和操作技巧。这份官方PDF文档采用简体中文,为中文用户提供了方便的学习途径。Flash CS4作为一款强大的矢量图形...

    Flash cs4本地中文帮助文件

    Flash CS4是一款经典的动画设计和交互式媒体开发工具,由Adobe公司推出,广泛应用于网页、游戏、动画制作等领域。这款软件的本地中文帮助文件对于中国用户来说尤其重要,因为它提供了详细的操作指南和教程,帮助用户...

    FLASH CS4 AS3 整站源码

    【标题】"FLASH CS4 AS3 整站源码"涉及的是Adobe Flash Professional CS4版本中的ActionScript 3(AS3)编程语言用于构建整个网站的源代码。这个标题表明了资源是为创建互动式、动态的企业级网站设计的,利用Flash...

    flashcs4帮助及示例源文件.rar

    《Flash CS4中文帮助与示例源文件详解》 Flash CS4是一款强大的动画设计和交互式内容创作工具,尤其在Web开发领域具有广泛的应用。它以其直观的界面、丰富的功能和强大的ActionScript 3.0支持,使得动态网页、游戏...

    flash cs4板书 教材

    《Flash CS4板书教材》是一本专为初学者及有志于深入学习Flash CS4技术的读者设计的教程。本书全面涵盖了Flash CS4的基本概念、操作方法以及高级技巧,旨在帮助读者掌握这一强大的动画与交互式媒体设计工具。 1. **...

    Adobe Flash CS4 帮助文档

    Adobe Flash CS4是一款由Adobe公司推出的交互式矢量和富媒体动画设计工具,主要用于创建动画、游戏、应用程序以及网络互动内容。此软件以其强大的动画编辑功能和对矢量图形的支持而闻名,是数字媒体创作者的重要工具...

    模拟cs程序 opengl 经典中的经典

    OpenGL是计算机图形学领域的一个重要库,用于在各种操作系统和硬件平台上创建2D和3D图形。"模拟CS程序"可能是指使用OpenGL来构建类似Counter-Strike(简称CS)这样的第一人称射击游戏的模拟器。这个项目可能是为了...

    FlashCS4帮助文件

    《Flash CS4 帮助文件详解》 Flash CS4,作为Adobe公司推出的经典动画制作软件,为设计师和开发者提供了强大的交互式内容创作工具。其配套的帮助文件是学习和掌握这款软件的重要参考资料,旨在帮助用户深入理解软件...

    Flash cs4经典教程.rar

    《Flash CS4经典教程》是一份详尽的教育资源,旨在帮助初学者逐步掌握Adobe Flash CS4这一强大的动画和交互式内容创作工具。本教程通过深入浅出的方式,将复杂的概念和操作技巧分解为易于理解的步骤,使得学习者能够...

    Flash cs4电子书完整版教程

    《Flash CS4电子书完整版教程》是一份详尽的教育资源,专为想要掌握Adobe Flash CS4这款强大的矢量动画和交互式设计软件的用户而准备。这份教程深入浅出地介绍了Flash CS4的各项功能,旨在帮助初学者快速上手,并...

Global site tag (gtag.js) - Google Analytics