Fluid idea for Life

随笔,杂记

Flash lite - ActionScript Stuck排错记

随着3G的到来,手机应用好象又开始升温了,不过总体上看,flash在手机应用上还处于起步阶段,把技术转换为简单实用的产品和服务,这中间还有很多路要走。 最近做的东西很杂,包括一个在手机上跑的Demo。环境是flash lite 2.0,在模拟器上跑Demo,一起正常,结果搬到真机上跑,出现了 Problem with content 4运行时错误,程序挂了。翻阅手册,发现是颇经典的“ActionScript Stuck”错误,肯定是哪块代码写的有问题,于是开始优化程序,所有不用的变量全部delete掉,仔细检查所有的循环,把for循环全部改为while循环,数组定长等等,不过错误依旧。

» 阅读全文

Tags: flash lite

25行as代码能做出什么?

if Einstein were still alive he would be a Flash user. 老外搞的一个25行代码比赛,这里是11、12月的结果:http://www.25lines.com/?page_id=139。看看这些代码,很能开扩眼界。 效果一个比一个绝,难怪爱因斯坦也要做flash程序员了。

这里还有一个:http://www.25lines.com/finalists/0812/043.swf,非常强大!

Tags: NB

Flash右键功能测试

在网页中利用js可以实现右键功能,这个已经不是新鲜事了,http://www.uza.lt/rightclick/。最近看到eval的用法,有个想法,可以直接在as中就实现右键,把js整合进来,这样使用起来会方便很多,于是动手做了。

做的过程中,发现swf与js的通讯并不如adobe文档中说的那么完美,前天有个同事的机器上死活也跑不起来,ExternalInterface就是没用,虽然装的是XP+IE。其次,经过测试,在某些浏览器下,ExternalInterface的执行效率很低,不知道底层是如何实现的。

不管怎样,还是做了一个小样,在FF、IE和谷歌下测试通过。 查看demo 使用来很简单: import org.fluidea.utils.RightClick; //初始化并定义回调函数 RightClick.init( onRightClick );

function onRightClick(){ // } 下载:RightClick.as

不过这个功能只能在网页中用(废话),wmode参数要设置,具体参考rightClick.html。

update:修正了鼠标中键的问题

Tags: rightClick

为数不多的FP 10 3D实例

FP 10内置3D支持,但目前为止,网上很少见到有分量的文章和例子,大部分都是一些简单的旋转效果,对于创建3唯对象都没有涉及,这里见到一篇文章,严格说是一个实例程序,涉及了Vetor、Matrix3D和Utils3D等类的用法,值得研究。

http://dispatchevent.org/calebjohnston/flash-player-10-3d-example/

Utils3D提供了将3唯坐标转换为2唯坐标的方法,其原理可以看这里:http://www.tjbhxs.com/blog/article.asp?id=39

Tags: 3D, FP10

aswing的使用心得

最近第一次使用aswing进行项目开发。以前虽然也看过不少aswing的资料,不过在实际项目中还是第一次。习惯了flex和flash的可视化操作,还真有些不习惯。 aswing的一个特点就是太灵活了,也许是因为对java的ui框架不熟悉的原因,很多习惯一时很难适应。经过几天的摸索,总算是慢慢有点感觉了。 有些组件,比如颜色拾取器,和flex中的操作习惯有区别,需要自己动手: [kml_flashembed movie="http://www.fluidea.cn/blog/wp-content/uploads/2008/07/colorpicker.swf" height="300" width="380" /]

» 阅读全文

Tags: aswing

多标签页面中,页面的关闭不会引发disconect事件

如今IE7也采用了标签的浏览方式,一个IE窗口可以打开多个页面了。

昨天,在调试一个FMS程序时,发现关闭swf所在页面时,总是不引发disconnect事件。当时很是困惑,类似的程序写了不下几十遍,还从没遇到这样的问题。

后来几经测试,才发现原来是浏览器的标签惹的祸。在同一个ie窗口(ff也一样),打开多个页面时,关闭任意一个标签页面,但不关闭窗口,都不会引发fms服务器端的disconnect事件。而且服务器此时ping客户端,都还有反应。事实上,swf所在标签页面早就关闭了。

在操作系统中,系统一般都用同一进程来处理同一个窗口中的标签,这就是根源所在。 同样的问题,不知道在flash的socket客户端中也存在?

要避免这个问题,大概只能有所谓的心跳机制了。

Tags: FMS

AS3 资源散记

第一条:AS3 程序优化文档:来自joe的http://je2050.de/files/misc/as3opt.pdf 这份文档中提到的部分知识点在其它地方也有提及,我作了简单的翻译,如下:

1、 在循环语句中,使用int 比Number要好。比如: for (var i:Number = 0;i<100;i++){ // } 优化为: for (var i:int = 0;i<100;i++){ // } 2、 复杂对象要抽象为数据类型,尽量避免使用Object动态数据类型。 这个要慢: for (;i<n;i++) { var v: Object = new Object; v.x = 1; v.y = 2; v.z = 3; } 优化后的代码: class Vector3D { public var x: Number; public var y: Number; public var z: Number; } for (;i<n;i++) { var v: Vector3D = new Vector3D; v.x = 1; v.y = 2; v.z = 3; }

» 阅读全文

Tags: as3

ActionScript 3 语言规范 chm

ActionScript 3的语言规范在adobe的站点上很早就发布了,地址是:http://livedocs.adobe.com/specs/actionscript/3

不过,一直没有下载版本,为了方便,我抓了包,做成了chm,方便查看。在学习ActionScript3时,看看这个还是很有帮助的。

有需要的朋友点此处下载

Tags: ActionScript

AS2中的字符串替换--大小写敏感

今天写代码时,写了这个函数,觉得还挺有用的

function replaceStr(s,oldChr,newChr,NoCase){
	if(NoCase == undefined){
		s = s.split(oldChr).join(newChr);
		return s;
	}
	var newStr = s;
	var len = oldChr.length;
	oldChr = oldChr.toLowerCase();
	s = s.toLowerCase();
	var pos  =  s.indexOf(oldChr) ;
	while( pos != -1){
		newStr = newStr.substr(0,pos) + newChr + newStr.substr(pos+len);
		s = s.substr(0,pos) + newChr + s.substr(pos+len);
		pos  =  s.indexOf(oldChr) ;
	}
	return newStr;
}</p>
<p>var str = "erter www WwW rter wwW ert";</p>
<p>trace(replaceStr(str,"www","***"));</p>
<p>trace(replaceStr(str,"www","***",1));

使用as插入CDATA

在COOKBOOK上看到一个小技巧,觉得以后应该用的上,先记下来 www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=2&postId=6142

function cdata(theURL:String):XML
{
    var x:XML = new XML("<![CDATA[" + theURL "]]>");
    return x;
}</p>
<the_url>{cdata("http://some.com?var=someval&foo=bar")}</the_url>
Total: 24Page 2 of 3‹ Prev123Next ›