FLARManager is a lightweight framework that makes it easier to build augmented reality applications for Flash.
分类: ActionScript
跨SWF安全沙箱引起的类型转换问题
问题描述:
今天做Denizen Hello,用的是Gaia框架,LoadingPage调用IndexPage中的MapPainter类型的对象出现如下错误:
TypeError: Error #1034: 强制转换类型失败:无法将 com.couldhll.bitmaptext::MapPainter@24f793a1 转换为 com.couldhll.bitmaptext.MapPainter。
问题分析:
检查LoadingPage和IndexPage中的类型,确认都是com.couldhll.bitmaptext.MapPainter类型。
但是IndexPage中是MapPainter@24f793a1类型,而LoadingPage中是MapPainter类型。
开始怀疑IndexPage中有问题,但是无果。偶尔在Main.as中使用MapPainter类型的对象后,一切正常。
问题解决:
其实我们都知道Loader.load()后面一个参数是安全命名空间参数,要设置成:SecurityDomain.currentDomain。
在Gaia中,可以在site.xml中为page设定domain="current"。
本例如下:
<?xml version="1.0" encoding="UTF-8"?>
<site title="Hello" menu="true">
<page id="index" src="index.swf" domain="current" >
<page id="nav" src="nav.swf" depth="top" domain="current" >
<page id="loading" title="Loading" src="loading.swf" menu="true" domain="current" />
<page id="home" title="Home" src="home.swf" menu="true" domain="current" />
</page>
</page>
</site>
《Android上的Flash和AIR应用开发》
http://csdn.gensee.com/webcast/site/vod/play-fa8281567f2b4e4f8d2f1d316d4c3c0c
今天拜看马鉴(7Yue)大哥的经验,受益匪浅。
Gaia swfaddress问题
问题描述:今天Cailven用Gaia搭建NewBalance Sonic 574 mini site框架。本地测试时,地址栏并不随菜单跳转而改动。在设置本地安全路径后,地址栏首页能够跳转,但是次页面不行。
问题分析:地址栏有问题说明是swfaddress的问题。仔细看了site.xml,发现首页的title属性是英文,其他次页面都是中文。
问题解决:把其title都改为英文。一切正常了。
Gaia插件消失问题
在Adobe Extension Manager CS4 安装插件後在Flash中却无法找到插件的Bug如果你遇到了如标题中所述的问题,那么估计你是安装了中文版的Extension Manager,却又使用的英文版的其他CS4组件. 🙂
以下是解决办法:
1. 在Extension Manager CS4的快捷方式上点右键,选择属性.
2. 到快捷方式选项卡,修改目标栏里的路径,加上 -locale lang=”en_US”.也就是说,修改后的路径是这样的:
“D:\Program Files\Adobe\Adobe Extension Manager CS4\Adobe Extension Manager CS4.exe” -locale lang=”en_US”
请注意-locale之前有一个半角空格.
然后点击这个快捷方式,打开Extension Manager, 重新启用你安装的插件,然后就ok了.
(感谢Cailven提供)
以下是mac版本的解决方法:
mac运行 Adobe Extension Manager CS4产生的中文版无法切换倒英文版本的解决方法如下:
经过一个下午的常识,终于找到了解决方法:
打开实用工具-终端,然后输入
"/Applications/Adobe Extension Manager CS4/Adobe Extension Manager CS4.app/Contents/MacOS/Adobe Extension Manager CS4" -locale lang="en_US"
这样就可以安装各类flash插件到英文版flash中了
文字点阵 in Flash
最近公司要帮Denizen做几个小游戏,要小人按照用户输入的文字排列。
把之前看过的Roxik和牛牛猪的例子找出来:
Roxik
http://temp.roxik.com/datas/max2007/
牛牛猪:
http://niuniuzhu.cn/p/ActiveWord
http://www.cnblogs.com/niuniuzhu/archive/2008/08/08/1263343.html
3D Wall in Flash
前段时间帮多乐士做了一个mini site,用的是PV3D做留言墙
PS
Dulux网站:http://www.letscolor.com.cn/
参考这个网站:http://www.coopers62.com.au/
Map连接导致Flash按钮点击
问题描述:dulux项目,一件很诡异的事,点击页面上的按钮会调用flash的功能,但是flash并未留接口出来。
问题分析:想想只可能是按钮与flash重叠,但是此按钮又不是于flash之上。
问题解决:无奈只得查看源代码,按钮用的是map连接。改之,一切安逸了。
amfphp中文乱码问题解决方法
问题描述:今天过测试dulux项目时候,通过amfphp传输中文的时候出现乱码,变成?????????????。
问题分析:问题应该出在编码问题上。flash中是gb编码,而amfphp是utf-8。
问题解决:
打开gateway.php:
修改
$gateway->setCharsetHandler("utf8_decode", "ISO-8859-1", "ISO-8859-1");
为
$gateway->setCharsetHandler( "mbstring", "gb2312", "gb2312" );
一切安逸了
amfphp远程访问问题
问题描述:
最近在忙Dulux,在连接后台amfphp的时候,Flash返回如下错误:
Error #2044: 未处理的 NetStatusEvent:。 level=error, code=NetConnection.Call.BadVersion
问题分析:
肯定是后台有问题,可能不允许远程访问,查了下。
解决方法:
打开amf/gateway.php,找到代码:
if(PRODUCTION_SERVER)
{
//Disable profiling, remote tracing, and service browser
$gateway->disableDebug(); //注释掉
//Keep the Flash/Flex IDE player from connecting to the gateway. Used for security to stop remote connections.
$gateway->disableStandalonePlayer(); //注释掉
}
将这两句注释掉,重启服务。
大功告成,问题解决。