辣鸡

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

2013年7月3日

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

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

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

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

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

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