Tag Archives: ActionScript

AS3在TextField属性htmlText字符中加入链接的换行问题

昨天实现一个功能时,遇到一个问题:我用AS3在xml文件中获取一段文本(文本中包含链接),将文本赋值给一个TextField对象的htmlText属性,这时候会发现被链接的单词或字符的首尾会被分行,也就是说被链接的单词会被单独置为一行。 解决办法: 把字符置于xml的CDATA标签内(由 <![CDATA[ 开始,由 ]]> 结束),让字符不被AS3的xml解析器解析。 下面是CDATA标签的说明: CDATA标签为不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。 在 XML 元素中,”

Box2D静态刚体旋转

这是2010年4月15号在茶馆儿发的一篇日志,现在被找回来了,在博客里存档一下。 如标题,在没遇到这个问题之前通常是用转轴把刚体固定在某一点,然后利用扭矩来实现刚体旋转,但使用转轴的问题在于,如果一个动态刚体掉落过程中撞到这个利用转轴转动的刚体时,这个刚体会发生微小的转动,虽然这属于正常的物理特性,但对于某些游戏来说对体验的影响还是不小的,Google了N多资料,试过N多种方法,最终给Box2d的源文件加入了个自定义方法,但总算是把问题解决了。

关于AS3域名锁定(sitelock)防止跨站引用的解决办法

问题描述:以前在给游戏加sitelock时,都是使用 loaderInfo.loaderURL 或者 root.loaderInfo.url 的方式来获取swf的url,然后进行判断,虽然可以防止swf在别的域名下运行,但别的域名可以通过在页面中直接引用swf来在页面中进行显示。 解决方案:使用 ExternalInterface.call 来执行一段js代码,获取swf所在页面的url,如果swf的url和页面的url都处在同一个域,那么 ExternalInterface.call就可以正常获取页面的url,否则会返回空,从而结合之前的方法共同验证就可以保证swf文件既不会在别的域名下运行,也不会在别的域名下被引用运行。

amfphp常见问题解决

今天被amfphp各种各样的问题折磨了一整天,把还能记得住的几个常见问题记录一下。 问题一:在brower中测试,返回faultCode:INVALID_AMF_MESSAGE faultString:’Invalid AMF message’ faultDetail: 解决方法:在gateway.php文件中加入$gateway->setLooseMode(true); 问题二:客户端返回NetConnection.Call.BadVersion 导致出现这个问题的可能性有很多,比如文件编码、字符乱码、php代码错误、数据库连接问题等等,但大多数同学应该都是因为客户端调试时直接是用flashplayer,而amfphp默认是禁止StandalonePlayer的访问。 解决方法:修改gateway.php文件,注释掉$gateway->disableStandalonePlayer();,但记得在项目正式发布时开启。 问题三:The class {Amf3Broker} could not be found under the class path… 解决方法:出现这个问题,很可能就是客户端代码调用php方法时忘了加类名,但也有因为别的原因导致这个问题,比如这位同学是通过修改php.ini文件来加大memory_limit的值来解决的。

AS开发工具集(长期更新)

注:这篇日志的更新已转移到wiki中,点击进入。 physics engine: box2dflash / nape / APE / Flade / Motor2 3D engine: papervision3d / away3D / alternativa3D / flare3d game engine: Flixel / flashpunk / ffilmation / pixelblitz / pushbutton / citrus

ActionScript项目中嵌入字体的指定字符

由于中文字体体积比较大,在项目需要使用不常见的中文字体时,就要用到Embed的unicodeRange属性,该属性允许指定要嵌入字符的16进制unicode字符。 以嵌入微软雅黑字体为例,使用Flex SDK 4.1,代码如下:

让notepad++正确显示actionscript文件语法高亮

notepad++一直以来都有个问题,在给actionscript文件语法高亮显示时总会错误的应用Haskell语言的语法高亮设置,原因是两个语言的扩展名有冲突。 解决方法也很简单,只要打开 C:\Users\用户名\AppData\Roaming\Notepad++\langs.xml (Win7系统路径) C:\Documents and Settings\用户名\Application Data\Notepad++\ (XP系统路径) 文件, 然后把Haskell语言段里设置扩展名属性中的as扩展名去掉即可,或者把整个Haskell设置段删掉。