flex magic bug 1 : Internal build error on empty switch branch

今天试用cast3d时,sample的例子就是调试不通,提示“An internal build error has occurred”。用排除法一直把范围缩小到TrackBall.as这个文件,之后就进行不下去了。 google+百度后,最后出来一个结果:(顺便在此时百度遭受围攻时挺一把百度,双搜索引擎并用才是王道) 里面提到flex在使用空switch时会出bug,TrackBall.as里出错的就是这一句:switch( event.keyCode ){} Adobe官方也记录了该bug: http://bugs.adobe.com/jira/browse/SDK-1570

flash读取外部中文时显示乱码的问题

1 比较老的解决方案: 加一句: System.useCodepage = true; 此法已经不推荐使用, 这是让flash player使用操作系统的编码。如果系统本身就不支持外部文本的编码格式,则可能仍然是乱码。以下节选自《flash cs3 help 》:“Only use this process when you are loading non-Unicode encoded text from an external location and when this text is encoded with the same code page as the user’s computer.” 2 将外部文本用unicode进行编码: 这种做法应该更通用 。同样摘自《flash cs3 help》:“ To ensure that users on all platforms can view external text files used in your Flash applications, encode all external text files as Unicode

flickrAPI notes 1

flickr的as Api:flickr-.87,最好直接使用source而非lib,里边的lib与source貌似不一致。同时使用source时,要再添加coreLib,用到了coreLib里边一些事件类型等。

flex与django|python通信,通过pyamf

pyamf官网上推荐了一篇中文howto(1,2),介绍django与flex通信,通过pyamf(一个python的开源api,专门针对amf协议)。其中有个小问题,就是destination的设置。 共有三处会用到该属性(这篇中文howto只提到了两处),我的代码片段如下: 1 flex:<mx:RemoteObject id=”djangoService” destination=”destinationFucker” showBusyCursor=”true”/> 2 services-config.xml: <destination id=”destinationFucker”> <channels> <channel ref=”fuckChannel”/> </channels> </destination> 3 amfgateway.py: usersGateway = DjangoGateway({ ‘destinationFucker.testFuck’:testFuck, ‘destinationFucker.testArrayFuck’:testArrayFuck }) 深红色的python部分,在原文中是没有destination的(当然原文中也没有fu*k)。 我不知道原文的example是如何测试的,至少我滴环境下(django自带server,无数据库)如果在python(或django)的方法前不加destination(即直接’testArrayFuck’:testArrayFuck ),flex是无法找到远程方法testArrayFuck的。(后注:后来发现原example无效是因为pyamf版本有更新) flex的RemoteObject,天生出来是与java后台相亲相爱的 ,在java中,destination对应的可以是该class名,即: class destinationFucker { public function testArrayFuck(){} } 而在python中,至少这个example中米有class,所以必须在映射方法testArrayFuck时加上destination才能找到“destinationFucker.testArrayFuck”。 那么客户端flex及services-config中不写destination行不行涅? 答案貌似是“不行”,如果在RemoteObject及services-config中去掉destination,运行时会找不到destination而报错。 那么客户端flex及services-config中destination id=””行不行涅? 答案也貌似是“不行”,在services-config中destination的id不接受””。至少在flex默认配置下这样是不行滴。 另外,上边举的那个java的例子,其实我猜的,因为从没用java试过 ^_<

“Put a Flex UI on your application”

测试了Bruce大师在”Put a Flex UI on your application”中的例程,其中flex端在我的环境下需要个别改动才可运行,记录如下: 1 as3-rpclib库。直接使用as3-rpclib.swc会报错,说XMLRPCObject覆盖错误。去掉.swc库文件,直接使用as3-rpclib的源代码后跟踪调试,原来在XMLRPCObject.as中两个重载函数“setCredentials与setRemoteCredentials”与基类中的原函数参数个数不一样,少了第三个“charset:String=null”。改动如下: /*原:override public function setCredentials (username:String,password:String):void*/ override public function setCredentials(username:String,password:String,charset:String=null):void 2 XMLRPCObject。原文中没有指定XMLRPCObject对象的destination,在我的环境(Flex SDK 3)下编译后”destination”值为“null”,于是gateway的url就变成了“http://localhost:8000null”。改动如下: 原:<ak33m:XMLRPCObject id=”server” endpoint=”http://localhost:8000″/> 改: <xmlrpc:XMLRPCObject id=”server” endpoint=”http://localhost:9000″destination=””/> 记录完毕。 另,集中注意力于前台flex, 用python做测试web server还真是方便高效。嗯,当然其他的语言php、java等其实还没有试过。。。