CS5中Flash 10的flash.events.TouchEvent

问题描述:今天做AMG的时候以前的代码运行出现错误:TypeError: Error #2007: 参数 type 不能为空。

问题分析:仔细检查报错信息,发现是flash.events.TouchEvent.MOUSE_MOVE为undefined。原来是CS5的Flash 10中加入了flash.events.TouchEvent类,导致于原来冲突。

问题解决:把以前的类改到flash.tuio包里就可以了。

cursor: hand;的问题

问题描述:今天做hydratech,需要在img标签上鼠标变手型,增加style="cursor: hand;"无效。

问题分析:测试环境用的是Safari,查了一下,发现现在没有hand这个value。

问题解决:现在hand改为pointer,不过IE5.5以下只支持hand,所以改为:
cursor: pointer;
cursor: hand;

一切ok了。

参考:http://www.quirksmode.org/css/cursor.html

消去现实(Diminished Reality)

大家都知道的「扩增实境」,是在电脑世界里产生出真实世界里所没有东西,而德国 Technical University of Ilmenau 为我们带来的这个「消去实境(Diminished Reality)」则正好相反 -- 它让本来存在现实中的物体从电脑中消失。示范影片中告诉我们,他们使用的方法是先将物体处的画质降低,待移除物体之后,再一步一步将画质调回来。虽然在效果上很类似 Content aware fill,但背后的原理并不相同。

http://diminishedreality.com/

http://grail.cs.washington.edu/projects/videoenhancement/videoEnhancement.htm

周期定时器:一个Flash Player10.1中不得不关注的特性

在Flash Player 10.1中,Adobe引入了一个全新的Periodic timer定时器概念,它可以改善浏览器中swf内容的CPU使用。在浏览器中的swf文件在不可见状态下(如窗口最小化,隐藏标签tab或页面滚动到swf文件以外的区域)会自动调节以降低资源消耗。(注:之前的Flash Player版本虽然不会渲染图形,但仍然在全速运行AS脚本,音视频编码解码等。)具体改变如下:

可见状态下:
1)SWF的帧频frameRate会被限制和校准为Jiffy时间模式(如最高60fps),但是目前的10.1 beta3仍然保留最高120fps的限制,这在正式版中将会被改变。
2)计时器(AS2中的Interval和AS3中的Timer)也会校准为Jiffy。
3)LocalConnection也同样会被校准。因此消息从一个swf文件到另一个swf文件至少需要33ms(也有说是40ms)。
4)Video不会做改变,他们可以在任何帧频下播放而不受影响。

不可见状态下:
1)SWF的帧频被锁定为2fps,不进行任何渲染。
2)计时器(AS2中的Interval和AS3中的Timer)被锁定为最多2次/秒。
3)LocalConnection也被锁定为最多2次/秒。
4)Video视频解码(不渲染和显示)只占用CPU空闲时间。
5)为了兼容音频,当swf中有音频在播放的时候,swf的帧频会被调整为8fps,同样swf中计时器和LocalConnection也做相应调整。

应该说这个特性非常有利于网络上flash应用的普及,但是也存在着潜在的风险。比如某些情况下,我们的应用程序需要在不可见的时候仍然保持着正常的运转,比如计时器的正确运行,某些事件按时发生,某些下载任务及时进行等等。当swf的帧速下降到2fps的时候,其影响是显而易见的。因此我们需要在swf不可见的时候仍然保持较高或者正常的帧速。目前有两种解决方法:

利用播放一个音频来使swf在不可见状态下维持8fps:
var gs:Sound = new GhostSound();
gs.play(0, int.MAX_VALUE, new SoundTransform(0));

用js的setInterval方法去调用swf的ExternalInterface.addCallback的方法,从而间接实现一些在不可见状态下必须全速运行的一些动作:
setInterval(callSWF, 50);
function callSWF()
{
var swf=document.getElementById("swfID");
if(swf)swf.execSomeMethod();
}

LEGO MINDSTORMS NXT 2.0

问题描述:在mac下装LEGO的软件,装好后发现没有可用程序,然后网上找啊找,找到以下方法:
To install LEGO MINDSTORMS NXT 2.0 on Mac OS 10.6 (Snow Leopard)
1. Copy all files from the MINDSTORMS CD to a folder on your desktop.
2. Open that folder and look under "Parts".
3. Locate MindstormsUnivEdu.pkg or MindstormsUnivRet.pkg.
4. Right-click (control-click) and choose "Show Package Contents".
5. Navigate into the Contents/Resources directory and delete the "preflight" file.
6. Close this package and run the meta-package from the desktop to install MINDSTORMS NXT

试了,无效,然后再找啊找,找到LEGO针对Snow Leopard补丁:http://mindstorms.lego.com/en-us/support/files/Patches.aspx

问题解决:下载其补丁,会再桌面生成一个安装光盘的copy,然后会自动进行安装。一切OK了。