AS3杂谈
文章平均质量分 53
wsxiaodong
本人擅长j2ee
展开
-
常用Flash的类
AS2和AS3的一个主要一个区别是可以写公用的类来调用,减轻代码量,同时规范了语法,不允许在影片剪辑中去写代码,只能允许在时间帧中写代码,同时发现如果用到gotoAndStop(场景,帧数),1.这个方法后是在一个影片剪辑中时间帧去写这个代码跳到另外一个场景中是无法掉用的。2.同事发现时用下面的duplicateDisplayObject,将影片剪辑转换成构造器,去复制一个影片剪辑中的影片...2009-10-20 10:31:55 · 252 阅读 · 0 评论 -
游戏中的智能寻路
近年来,游戏产业的快速发展带动了游戏中人工智能(Artificial Intelligence,简称AI)的发展,越来越 多的游戏采用人工智能技术提高游戏的可玩性。在电子游戏中,玩家操控主要角色,而其他角色的行为逻 辑由人工智能操纵,这些角色我们称之为NPC(Non- Player Character,非玩家控制角色)。大部分游戏在开发过程中都会遇到路径探索问题,快速、准确地计算出游戏角色从地...原创 2011-05-22 18:20:42 · 372 阅读 · 0 评论 -
简要评说Adobe的FlashPlayer的渲染算法
前些时候看到CSDN上一篇文章介绍FlashPlayer的渲染效能是HTML 5的数倍文章,回想起几年来对Adobe的FlashPlayer研究,想从理论上探究一下为什么会有这样的结果,同时也解释一下针对传统硬件加速(非GPU方案)为什么Adobe的FlashPlayer会被批评的原因;早些年在一家IC设计公司为一个低端平台(具有硬件3D加速)作官方的FlashPlayer的硬件加速,几个月下...原创 2011-06-27 10:22:30 · 107 阅读 · 0 评论 -
Flash WebGame 开发经验心得和PureMVC框架细说
→前端的主程序架构和模块划分与人手和人事分工是紧密联系在一起的,而这些很大程度上又是由项目本身决定的。纵观现在国内绝大多数FLASH WEB GAME的规模和难度,我觉得前端AS人员大概需要2-7个之间,主程序有效代码一般不会超过10W行。在这种情况下,人事分工应当以功能和模块进行划 分,尽量避免多人维护同一份代码,每个人各司其职,减少维护和协作的成本。这种模式非常适合人手不够,制度不健全,而且追...原创 2011-06-27 10:32:43 · 189 阅读 · 0 评论 -
原来flash player对图片的解码不是异步的,AIR2.6后就异步了
用过 Loader 对象的人都知道,加载图片时,无论是使用 load() 方法还是 loadBytes() 方法,都是异步的。从开始加载到显示在舞台上这一过程,分别有两个动作:图片加载和图片解码。我一直都以为,从加载到解码完毕都是异步进行。但看了这篇文章后(http://www.bytearray.org/?p=2931),我才知道,只有加载的动作是异步的,加载完毕后的图片解码是同步的。即:加载动...原创 2011-06-27 10:53:15 · 89 阅读 · 0 评论 -
常用flash引擎和框架
官方在线帮助(没标英文的都是中文)用于 Adobe Flash Platform 的 ActionScript 3.0 参考 16种语言(使用这样的链接下载离线版http://help.adobe.com/xx_XX/FlashPlatform/reference/actionscript/3/PlatformASR_Final_xx-xx.zip)用于 Adobe Flash Profe...原创 2011-06-27 11:08:39 · 1648 阅读 · 0 评论 -
Flex 中的callback
Flash支持传递函数做完参数传递。下面是主函数中的方法LoadGame.load(function (game:Game):void { trace('game: '+game); switchToGame(game); });下面是LoadGame中load方法function load(callback:Function):void{ ...原创 2011-06-28 11:16:41 · 171 阅读 · 0 评论 -
Flash中的深度排序
As for Multiplayer Games and Virtual Worlds202 排序算法……在世界里将对象放在正确的位置不是件难事,但是长期以来让开发者们发晕的是如何在以恶搞等角视觉里适当的将那些对象排序。“排序”这个词在这篇文章里的意思是指基于对象的3D位置将它们分在不同的图层。图例中灌木应该在树的前面显示,而树则应显示在灌木后面(基于他们的坐标)。...原创 2011-06-28 11:34:07 · 241 阅读 · 0 评论 -
Flash WebGame 开发经验心得和PureMVC框架细说
→前端的主程序架构和模块划分与人手和人事分工是紧密联系在一起的,而这些很大程度上又是由项目本身决定的。纵观现在国内绝大多数FLASH WEB GAME的规模和难度,我觉得前端AS人员大概需要2-7个之间,主程序有效代码一般不会超过10W行。在这种情况下,人事分工应当以功能和模块进行划 分,尽量避免多人维护同一份代码,每个人各司其职,减少维护和协作的成本。这种模式非常适合人手不够,制度不健全,而且追...原创 2011-06-28 14:02:54 · 102 阅读 · 0 评论 -
PV3d性能优化
当你优化你的程序时,要考虑到许多因素。性能的优化并不仅仅与你使用 Papervision3D 的方式相关。最后所说的是关于如何在 Flash 中进行性能的优化。让我们先测试一些并不只与Papervision3D 有关的优化技巧。舞台品质将 stage quality 调低是得到性能的最容易的方式。降低 stage quality 并不意味你降低了屏幕的质量。首先,先来看看你可以...原创 2010-11-25 14:19:25 · 121 阅读 · 0 评论 -
red5的常用方法
在使用red5+flash做rpg游戏开发的时候有些功能是需要服务器来提供的,如最简单的多人用户上线,当一个用户上线后后要通知所有其他的用户,这个时候就需要red5去获取所用链接的客户端,然后通知客户端用户上线。当用户下线的时候,也是同样的需要red5的支持。我在开发的时候是使用red5 0.8的版本。下面详细介绍一下具体的实现。ApplicationAdapter是客户端与red5连...原创 2010-12-03 10:11:41 · 108 阅读 · 0 评论 -
flash player10的rotationY的使用
flash player10提供了对3D的支持,虽然功能不够强大,但是有些功能还是很不错的,下面是用10写的一个翻牌游戏。public class Card extends Sprite{ [Embed(source='../../../lib/goodbyewow02.jpg')] private var FrontFace:Class; [Embed(sourc...原创 2010-12-07 12:26:47 · 152 阅读 · 0 评论 -
Python之旅
一直用AS3+Red5做一些小游戏,感觉挺方便的,特别在做上下线的功能的时候很方便,Red5都帮我们封装好了,所有需要的方法。基本调用就可以,但是在做大并发访问的时候,Red5就成了一个瓶颈,这个时候用socket是很好的解决办法,可以选择java的socket或是AMFsocket都是可以的,但是真正要提高效率,就要Python和C/C++的iocp来实现,今天做了一个简单的例子,我喜欢使用ec...原创 2010-12-09 19:40:58 · 106 阅读 · 0 评论 -
as3中ProgressEvent的bytesTotal始终为0
as3中ProgressEvent的bytesTotal始终为0遇到很奇怪的问题,as3中监听资源下载的PROGRESS事件(ProgressEvent.PROGRESS),它的bytesLoaded属性倒是正常的,但bytesTotal属性却始终为0,结果是导致了得到的下载比率为无穷大(Infinity)evt.bytesLoaded / evt.bytesTotal evt.b...原创 2011-05-16 09:50:19 · 297 阅读 · 0 评论 -
使用URI-Style Namespace编译ActionScript/Flex Library
当你开发了一个有着多个Pacakge的类库,并在MXML中使用他们时,有没有发现这样的不便:你需要为隶属于不同Package创建的组件声明各自的pacakge-style namespace,例如下图中ClassA和ClassB:你可能需要这样引用它们:当引用的组件类处于很多不同的Package中时,你的代码将会变得复杂和混乱。另外,如果类库的包结构发生变化,你必...原创 2011-05-12 11:10:38 · 76 阅读 · 0 评论 -
Flash中矢量和位图的使用
最近在做一个世界地图的Flash,其中导入一个很大的矢量图形,在使用中发现Flash对很复杂的矢量图形处理不太好,查了下文档,原来flash在处理矢量是自己计算绘制的,所以当在操作的时候flash就不断重新绘制,当flash很复杂的时候,就会出现很卡的情况。AI对矢量图形的出来很好,所以和在AI中将矢量图形粘贴到flash中,这样就不会很卡了。我的网站设计 web design home ...2010-06-09 16:47:51 · 289 阅读 · 0 评论 -
关于无法修改位于时间轴上的对象的名称属性
Sprite和MovieClip的最大区别在于,MovieClip是有时间轴的,而Sprite是没有时间轴的,这就意味着,MovieClip的属性是能动态更改的,而Sprite是不能动态更改的。...2009-11-10 10:12:27 · 322 阅读 · 0 评论 -
AS3关于图片旋转和缩放的讨论
要做类似于Flash AS3中的图片缩放和旋转功能。参照了被人代码,发现思路是一个很好的借鉴。第一个要问题是,手型的问题,要将系统的手型换成自己绘制的手型。Mouse.hide(),Mouse.show();第二个问题是就是中心的问题,如果将图片放在sprite的0,0的位置,那么最终旋转就是以0,0点进行旋转。第三个问题是,关于选择的计算问题,var angle:N...2009-11-17 16:45:43 · 144 阅读 · 0 评论 -
updateAfterEvent事件的使用
在使用自定义的鼠标后,在移动鼠标时比较慢的,这时候是用updateAfterEvent能够更加流畅。从API中可知其实MouseEvent的方法。我的网站设计 web design home page [url]http://www.webdesign-cn.com[/url][url]http://www.webdesign-china.cn[/url]...2009-11-20 16:26:44 · 113 阅读 · 0 评论 -
关于stage的讨论
stage在flash常被乱用,而且经常出现stage为null的情况,这种情况基本是在一个类去调用另外一个类,在被调用的类中使用了stage,这个时候很容易出现null的情况。stage是顶级显示对象,root是二级显示对象。所以在AS3中所有调用的类中只有主类能够使用stage,如我们常在使用loading完成后才会去调用我们的主swf文件,下面是我常用个的 loading。pac...2009-11-20 16:34:26 · 137 阅读 · 0 评论 -
关于AS3字体消除锯齿
CS4中的消除锯齿,主要包含使用设备字体,位图文本,动态消除锯齿,可读性消除锯齿,自定义消除锯齿。 一般说来如果是使用动态文本的话如果只是英文,数字,可以使用Arial嵌入字体,但是如果可能有中文出现,最好是用宋体12号,这样就不会有锯齿。下面是关于动态嵌入字体的代码var formt:TextFormat = new TextFormat();form.size = 18;...2009-12-02 10:46:46 · 608 阅读 · 0 评论 -
Flash的二维坐标系
1、flash中的二维坐标系 (1)、坐标的转换 flash中场景左上角为(0,0),而在数学中是场景中心为(0,0),怎样把它转成数学中的坐标系呢?假设场景宽度:550,高度400。 x=550/2+this.x;//x右移 y=400/2-thix.y;//y下移 如图1。 图1:转换后的坐标系 图2:角度、弧度的转换 ...2009-12-08 09:40:03 · 485 阅读 · 0 评论 -
PV3D 破面
PV3D是一个开源的遵循MIT协议的使用AS3代码写成的3D引擎. 在PV3D中,当两个物体接触时,他们的面就回进行错误排列,产生破面现象,为什么会出现这种情况。 三维物体的面的最小单位是三角形,三角形离摄像机的垂直距离,我们一般称作Z-depth,我一般称作Z-depth(深度),所以当两个最小单位碰面的时候,就只能出现一个在另个物体的上面,而不能都出现一部分。怎样解决?1.第一个...2009-12-09 12:54:12 · 140 阅读 · 0 评论 -
papervision3D 关于lookAt error问题
在papervision3D中将camera.z=0就会出项lookAt:error的问题。If you get this error on each frame then you have probably moved the camera to the same position as the object (camera.z = 0). Change it a bit and the e...2009-12-11 10:25:13 · 75 阅读 · 0 评论 -
AS3中的loading与stage
在AS3中如果用loading在主flash中是不能使用stage的,因为stage是顶层容器,那么如果你的flash要做出自适应的,只能在loading的flash中使用了,还有种办法就是在把flash做成两帧,第一帧场景中只有loading的文字,当整个loading加载完成后在调到第二帧。入下面是在自身中加载loadingstop();import flash.display.Loa...2009-12-16 13:53:31 · 129 阅读 · 0 评论 -
关于PV3D常用材质的讨论
PV3D中的贴图材质有很多。 颜色材质ColorMaterial, 位图材质BitmapWireframeMaterial, 视频材质VideoStreamMaterial, 影片剪辑材质MovieAssetMaterial, 要说一下影片剪辑材质,在影片材质中,如果贴入一个影片剪辑,要用剪辑里面的事件监听,要将inte...2009-12-17 14:05:45 · 90 阅读 · 0 评论 -
flex 3 + .net开发flash Remoting四[完整代码
一. 相关说明: 本篇将呈现完整的Flash Remoting访问远程服务器,包括以可视化组件方式和以编程方式访问远程服务器。Asp.net服务器端和Flex客户端完整代码下载。二. 相关代码预览: 1.frServices.as,以编程方式访问远程服务器。package com.demo.fr{ import flash.events.EventDi...2010-03-02 20:49:17 · 120 阅读 · 0 评论 -
PV3D处理3D矢量绘图与3D文本
Papervision3D主要以位图为基础,所以所有的渲染都被转换为位图。如果采取这种方式,呈现出外观清晰光滑的文本会成为复杂问题,如在第四章所见的例子MovieAssetMaterial。渲染文本直接采取矢量图的手段是个很好的选择。基于以下两个原因:● 位图质量由分辨率决定,对其缩放会导致图片质量下降。矢量图的缩放却无图片质量损失。● 在变化中的三角形中换行并保证良好的外观是很难...原创 2010-08-23 11:46:03 · 128 阅读 · 0 评论 -
环境贴图
教程:实时环境映射贴图技术实时环境映射贴图技术(Real-time Evironmnet Mapping) 如果你是个赛车游戏的爱好者,你一定玩过风靡全世界的赛车游戏《极品飞车:地下狂飚2》 (Need For Speed : UnderGround2)。在这款游戏中,玩家扮演了一个靠赛车为生的地下飚车手,在永远是夜晚的城市中飞驰。这款游戏大量地运用了环境映射技术(R...原创 2011-03-29 10:49:49 · 351 阅读 · 0 评论