辣鸡

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

随笔分类 -  Flash as3新人补钙系列教程

1 2 下一页

摘要:1. 什么是BSP树BSP算法的初始数据是一个多边形集,BSP在预处理的时候先在多边形集中选取一个多边形作为支持平面,然后根据这个平面将集合划分成两个部分,每个部分是一个新的子节点,递归进行该过程,直到每个子节点中的多边形都构成一个凸区域(最小凸边型),每个区域是一个叶节点,或成为cell,然后算法预计算在每个区域中可以见到哪些区域,得到PVS(潜在可见集)。BSP可以说是八叉树的一般化每个节点都是一条直线.所有在直线左边的东东都在它的左子树上,所有在它右边的东东都在它的右子树上.好,我们用BSP树来想象一幅画面.假设玩家站在D房间里面向屏幕右方,代号为点'x'我们从树的顶端直 阅读全文
posted @ 2013-07-03 20:32 辣鸡 阅读(1037) 评论(0) 推荐(0)

摘要:flash 程序执行是个异步单线程机制,当我们需要让程序等待一会,比如加载资源时要侦听complete,否则容易出现null的情况,由于没有c#中的wait,当遇到需要异步的时候,除了使用事件以外,回调函数也是个不错的选择。看一段代码:private function initData ():void { var initNeedData:InitNeedData = new InitNeedData(); GetNeedImage.getInstance().getNeedImage("//192.... 阅读全文
posted @ 2013-07-03 20:32 辣鸡 阅读(282) 评论(0) 推荐(0)

摘要:要说应用程序域,就不得不说安全沙箱安全沙箱在帮助文档的解释是:客户端计算机可以从很多来源(如外部 Web 站点或本地文件系统)中获取单个 SWF 文件。当 SWF 文件及其它资源(例如共享对象、位图、声音、视频和数据文件)加载到 Flash Player 中时,Flash Player 会根据这些文件和资源的来源单独地将其分配到安全沙箱中。从导入到安全域的 SWF 文件加载嵌入内容当加载 SWF 文件时,可以设置用于加载文件的 Loader 对象的 load() 方法中的 context 参数。此参数是一个 LoaderContext 对象。将此 LoaderContext 对象的 secur 阅读全文
posted @ 2013-07-03 20:31 辣鸡 阅读(308) 评论(0) 推荐(0)

摘要:卡马克卷轴是世界顶级程序优化大师,以及游戏引擎开发领域的先行者 约翰·卡马克所创造的一种平滑卷轴算法。(此人和zun并列为我的偶像) 早在20多年前,电脑游戏的发展才刚刚起步。相比专门为游戏而生的电视游戏,电脑游戏在当时还非常“弱智”。 tv游戏里那些可以卷轴的游戏大大提高了用户的体验,当控制角色行走时,镜头会跟随主角,而地图会卷动以提供更为广阔的游戏场景,让玩家体验到一个连续的世界。超级马里奥就是这类游戏中的成功典范。 但在1990年,还没有人能在电脑上实现这样的效果,开发人员都用一些蹩脚的技巧来让玩家觉得游戏的世界比屏幕要大,譬如当玩家移动到屏幕最右边的时候,游戏会停顿一会,然后 阅读全文
posted @ 2013-07-03 20:31 辣鸡 阅读(1130) 评论(0) 推荐(0)

摘要:不够优秀的代码:/**** ActionScript 3.0 需要多个类同时工作来载入和回放Flash视频。你必须使用NetStream对象载入视* 频并控制回放,但是NetStream类只关心如何读取数据,至于这些数据是什么内容并不知道,因* 此就需要Video对象,Video对象得到NetStream的数据并显示到屏幕上。*** NetStream构造函数需要一个NetConnection对象作为参数,NetConnection对象关联将要播放的视频***/package tlg.tool { import flash.display.Sprite; import f... 阅读全文
posted @ 2013-07-03 20:30 辣鸡 阅读(222) 评论(0) 推荐(0)

摘要:package{ import flash.display.Loader; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; import flash.net.URLRequestMethod; import flash.net.URLVariables; import flashx.textLayout.tlf_internal; im... 阅读全文
posted @ 2013-07-03 20:29 辣鸡 阅读(345) 评论(0) 推荐(0)

摘要:比较常用的,AS 调用 JSprivate function callJS():void{ ExternalInterface.addCallback("callbackQQPay",callBackFromJs); var obj:Object = {}; obj.id = 1; ExternalInterface.call("testItem", obj);}private function callBackFromJs(obj:Object=null):void{ trace("OK!"); }复制代码在 JS 调用 AS 时 阅读全文
posted @ 2013-07-03 20:28 辣鸡 阅读(311) 评论(0) 推荐(0)

摘要:Context3D,是一个三维空间的处理环境,负责创建并处理三维对象的各个要素如顶点、片段、透视等等,并将处理的结果使用AGAL(Adobe图形汇编语言)上传给显卡进行运算,运算结果最终被回传给CPU添加到Flash Player的显示层,并呈现在舞台上。Context3D不能被构造函数实例化,而是可以通过stage中的一个新的成员Stage3D来访问(但这不说明只许可有唯一个Context3D)stage3D.requestContext3D();复制代码使用 GPU 加速渲染资源,在渲染的过程中,首先需要把数据提前加载到显存。在 Alternativa 3D,这些数据资源就代表那些资源类对 阅读全文
posted @ 2013-07-03 20:28 辣鸡 阅读(380) 评论(0) 推荐(0)

摘要:ECMAScript 整数有两种类型,即有符号整数(允许用正数和负数)和无符号整数(只允许用正数)。在 ECMAScript 中,所有整数字面量默认都是有符号整数,这意味着什么呢?有符号整数使用 31 位表示整数的数值,用第 32 位表示整数的符号,0 表示正数,1 表示负数。数值范围从 -2147483648 到 2147483647。可以以两种不同的方式存储二进制形式的有符号整数,一种用于存储正数,一种用于存储负数。正数是以真二进制形式存储的,前 31 位中的每一位都表示 2 的幂,从第 1 位(位 0)开始,表示 20,第 2 位(位 1)表示 21。没用到的位用 0 填充,即忽略不计。 阅读全文
posted @ 2013-07-03 20:27 辣鸡 阅读(660) 评论(0) 推荐(0)

摘要:初始化XML对象XML对象可以代表一个XML元素、属性、注释、处理指令或文本元素。在ActionScript 3.0中我们可以直接将XML数据赋值给变量:var myXML:XML =burger3.95fries1.45复制代码你也可以使用new 构造器来从XML数据文本创建一个XML对象实例:var myXML:XML = new XML("burger3.95")复制代码如果XML数据不是格式完好的(如少了结束标签),那么将会出现运行时错误。注意,你也可以将变量实例传入XML数据中:var tagname:String = "item";var a 阅读全文
posted @ 2013-07-03 20:26 辣鸡 阅读(218) 评论(0) 推荐(0)

摘要:一年来可以明显看到一个变化:网页游戏分线从标配逐渐变成了可选,越来越多的游戏开始不分线;当初为什么要分线?现在为什么又不分线?技术上面临着什么挑战?仅仅是技术问题么?术语解释不同的技术实现"一条线"的概念也不尽相同,我们使用的Erlang实现,这里的一条线对应Erlang的一个VM.为什么要分线? 可以通过比较来回答这个问题:所有玩家都在同一条线上 VS 同样数量的玩家被分配在多条线;如果所有玩家(假定1000人)都在一条线上首先同一场景的玩家数就会比较高,特别是一些游戏的热点区域比如副本入口,主城中心,传送门等等,当然同屏人数也会高;服务器端对应相关场景的广播压力,和业务 阅读全文
posted @ 2013-07-03 20:24 辣鸡 阅读(291) 评论(0) 推荐(0)

摘要:一个flash应用程序可能会非常复杂,比如,有很多可视实例嵌套在一起,这样的话会形成一个树形结构,这个结构的根是stage,然后一级级到不同的实例,一般来说,要把这个树形结构倒过来看,即stage在顶部,在stage中的实例一级级排列在下面,要参考帮助中的图。这样的一个树状结构即display list,每个实例(stage也是实例)都是树中的一个节点(node),如何来处理这种复杂结构的事件呢?as3引入了事件流的概念事件流用于描述事件发生在display list中,遍历其所有node的过程,它可以分为3个阶段:1、捕获阶段(capture phase):从顶部(如stage)到目标2、目 阅读全文
posted @ 2013-07-03 20:23 辣鸡 阅读(248) 评论(0) 推荐(0)

摘要:1.关于MovieClip和Sprite的鼠标事件,当不需要鼠标事件的时候将mouseEnabled和mouseChildren设为false. 不断的检测鼠标交互事件会消耗CPU,尤其是大量交互对象重叠的情况。2.对于执行时间太长的非动画内容,优先选择计时器,而不是 Event.ENTER_FRAME 事件。3.在 enterFrame 事件或 Timer 处理函数中,尽量减少对可导致重绘屏幕的显示对象外观的更改。4.尽量减少补间动画,以节省更多的CPU处理。把MC给stop5.场景里放入好多的子可视对象时,鼠标的滑动会导致cpu的狂飙;原因主要在于fp内部在不停的遍历可视对象.你可能会用过 阅读全文
posted @ 2013-07-03 20:22 辣鸡 阅读(267) 评论(0) 推荐(0)

摘要:研习googlebuffer protocol 让我们知道二进制是万物之源。废话不说了,代码之:一:图片转字符过程isplayObject>bitmapData>ByteArray>Base64>String把图片转化为二进制或字符,使用AS3自带的JPEGEncoder和PNGEncoder,其中JPEG格式就算使用100%的品质在还原时还是失真得比较严重.var bitmapData:BitmapData= newBitmapData(image.width,image.height);bitmapData.draw(image);//转化为BitmapData数据 阅读全文
posted @ 2011-12-24 09:27 辣鸡 阅读(329) 评论(0) 推荐(0)

摘要:1.关于配置文件的管理。这里提供2种方法:a.硬编码在一个类中,作为静态方法提供。优点:效率高。 缺点:更新起来麻烦,修改了配置文件就得重新编译一次项目。b.对于配置文件比较多,且修改频繁的项目,就可以采取将所有配置文件打包到一个swf文件中,一个类对应一个配置文件,在文档类中提供这些配置类的调用接口,这样初始化的时候也只需加载一个swf文件,且容量比总xml文件也小很多,这样也方便以后更新维护了。一般项目中都是将两者结合起来用的。这里就只浅尝辄止的提供一点思路而已。2.关于资源的合理利用。因为现在快被flash的垃圾回收烦透了,所以这里强烈建议项目中的一些资源尽量做到重复利用,这里有两个思路 阅读全文
posted @ 2011-12-24 09:27 辣鸡 阅读(276) 评论(0) 推荐(0)

摘要:'功能:使用正则表示式对字符串进行替换复制内容到剪贴板程序代码Function RegReplace(Str, PatternStr, RepStr)Dim NewStr, regExNewStr = StrIf IsNull(NewStr) ThenRegReplace = ""Exit FunctionEnd IfSet regEx = New RegExpregEx.IgnoreCase = TrueregEx.Global = TrueregEx.Pattern = PatternStrNewStr = regEx.Replace(NewStr, RepSt 阅读全文
posted @ 2011-12-23 17:23 辣鸡 阅读(232) 评论(0) 推荐(0)

摘要:1. 关于存储使用适当的 Display Object* Shape – 没有交互(占内存少)* Sprite – 有交互(占内存多)* MovieClip – 有时间线(占内存更多)尽可能重用对象,而不要重新创建强制类型转换 int(exp) 要比 Math.floor() 和 Math.ceil() 快很多使用对象池技术重用对象释放内存 – 将所有对象的引用设置为 null尽可能重用BitmapDataCallback 要比 event 快而且消耗更少的内存2. 减少 CPU 使用率即便将一个 Display Object 从 stage 上移除了( removeChild ) 甚至是已经 阅读全文
posted @ 2011-12-23 17:23 辣鸡 阅读(234) 评论(0) 推荐(0)

摘要:实现结果:用户可以输入几何形状(circle,triangle,square)和形状在小(边的长度sideLength),程序自动得出关于该几何形的相关信息(是什么形,面积,周长,角度和)首先想到为3个形状做3个类,每个类里都有describe()这个方法,用来输出此形状的相关信息。然后再弄一个类,用来判定是用户输入的是哪个形状,创建几何形的实例对象。用接口去实现。把共同都要执行的方法(尽管执行的内容不同),写在一个接口里。这样就可以利用“多态”来实”完全相同的方法调用会导致执行不同的代码,这取决于要调用了其方法的对象的类。”1.创建一个Ishape类(定义了两个共同的方法:获取面积,描述信息 阅读全文
posted @ 2011-12-23 17:23 辣鸡 阅读(211) 评论(0) 推荐(0)

摘要:实际用途:有些时候,需要动态更改函数中的默认指向当前对象内部域(this),指向到其他对象中时,需要用到apply(),如果在脚本实际执行前,无法知道要传递的参数的数量,那么这种方法通常很有用。apply () 方法AS3functionapply(thisObject:Object, argArray:Array = null):void复制代码我们知道,每个function最终在执行时,都要有一个上下文环境,也就是this指针在函数执行时,到底指向谁的问题?var tmpObj:Object = new Object();tmpObj.addSalary = function(addSal 阅读全文
posted @ 2011-12-23 17:22 辣鸡 阅读(260) 评论(0) 推荐(0)

摘要:比较老的教程,没事儿再看看AS3 中使用URLRequest 和URLLoader与服务器交互AS3 中使用 URLLoader 与 URLRequest 取代了先前版本 LoadVars 方法. 初学者可能又会迷糊了.在现在帮助系统没有完善的情况下 (Flash 9 没有帮助, FlexBuilder2 的只有英文), 这里写篇简单的教程, 方便大家往 AS3 过渡.在 AS3 中, 有关于网络操作的内置类全部在flash.net 里. 下面是本教程要用到的类的清单 :URLLoader : 用于从网络或者本地读取文件, 可以通过设置他的 dataFormat 属性改变收到的文本类型.与 A 阅读全文
posted @ 2011-12-23 17:22 辣鸡 阅读(367) 评论(0) 推荐(0)

1 2 下一页