Fluid idea for Life

随笔,杂记

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

三句笔记

1.在MXML组件如何实现接口?

这种情况比较少见,一般实现接口用类来写,但有时候偷懒希望就在MXML中搞定。MXML的本质就是as,所以可以做到,只需添加到根节点中: implements="org.fluidea.IElement"

2. 直接把swf文件中的movieclip嵌入在Flex程序中,如果有多桢动画,好象无法控制stop,play等. 解决方法是当作单个swf文件,再用loader的loadBytes方式载入,或者用adobe提供的专用工具Flex component kit,把flash中的元件转换为flex组件,或者......???

3. 网页中的swf执行javascript一法,这个是在网上看到的,觉得很有用,于是记在这里: 一句话就够了,非常强大。

ExternalInterface.call("eval", "");

Tags: Flex

近期速记

看了一段视频,很震撼:http://www.peterelst.com/blog/2008/12/12/adobe-creative-technologies-lab/,adobe的工程师真是很好很强大。

看了这个程序,我觉得自己对ajax还很无知:http://antimatter15.110mb.com/ajaxanimator,还是开源的,牛人总是做一些牛事!

前些日子研究 Text Layout Framework,结果过了几天Adobe就放出了Flash CS4版本的组件,看来是我多虑了,TextView组件很强大,Adobe网上的demo更是了得的很。

最近有一个想法很强烈,希望做一个基于Flash的真正的PDF浏览器,目前进度为1%。

wordpress又升级了,应该更新吗?不应该更新吗?应该更新吗,不应该吗......

Blog恢复

前几天Blog所在的服务器搬迁,由于是放在朋友的服务器上,结果所有文件都被弄丢了,幸好数据还在。花了半天工夫全部恢复过来,不过有部分上传的文件没有备份。 写Blog最痛苦的事莫过于数据丢失。

现在全部搬迁到自己的空间上了,用的是国外的空间,lunarpages,flex9.cn也放在上面,挺稳定的,空间也够大,N个G,用的是独立IP,自力更生了。

关于Alchemy的随想

早在2007年就有Adobe的牛人在研究如何在Flash Player 9(具体是AVM2)上跑C或C++,现在这个研究已经进入了出成果的时候,昨天还是前天在labs上放出了这个传说中的家伙名为Alchemy。 相逢不如偶遇,最近正在被Flash Player在声音采集上的限制弄得头昏。Adobe允许我们可以动态加载Mp3或Mp4,甚至编写算法播放wav(但要注意采样率必须是44100、22050、11025、5510,是不是很变态?),但如果想获取麦克风的声音数据,没门! Flash Player采用的是商业版本的Nellymoser编码算法(一个解码器好象售价$7000多),整个过程都封闭完成,开发者无法获取这些数据。Flash media server倒是可以,但只是做数据转发,任何想围绕Flash做录音相关的应用都无解。于是有很多人瞄准了Red5,事实上,强大的Red5团队也没有办法,google了一下,很多老外都对此很怒。据说国外有牛人破解了Nellymoser编码,还放到google code上,结果马上被封杀。 Flash Player 10新加了一个功能,允许选择音频编码器,除了默认的Nellymoser编码,还可以选择开源的Speex,可能是考虑到广大用户的呼声,Adobe作了一点让步。处于商业考虑,要照顾FMS,还有其它软件,Adobe真是费尽心思。 Alchemy的出现,让我稍稍激动了一下,如果可以使用C语言来截获麦克风的原始数据,或者直接访问麦克风,那不是很完美?但精打细算的Adobe应早有防范吧。

Tags: Alchemy

Flash Player 10文本试验2

[kml_flashembed movie="http://www.fluidea.cn/lab/textview/TextViewProject.swf" height="360" width="480" /]

嵌入了一个swf在里面,发现位置控制有点问题。

Tags: as3, FTE

FP 10下的图文混排

FP 10的一大特色是引入了新的文本引擎,官方上的文档称可以实现图文混排、改变输入方向、竖排等功能。

关于Flash Text Engine:http://help.adobe.com/zh_CN/ActionScript/3.0_ProgrammingAS3/WS6C0BB8ED-2805-467a-9C71-F9D757F33FB6.html

初看文本引擎的API,很多,但都是些很低层的东西,实现文本和图片的显示倒不难,但要实现一个富文本编辑器,还远远不够。为此,Adobe在文本引擎基础上又写了一个库,也就是所谓的Text Layout Framework,在opensource上发布的Flex4测试版本中,已经引入了这个库,并形成了一个新的功能强大的组件TextView(http://opensource.adobe.com/wiki/display/flexsdk/Gumbo+Text+Primitive)。

据说在Flash cs4中也会引入这个库,但很明显,adobe是不会引入新的TextView组件。为此,我花了一天时间,把这个TextView移植出来,从而可以直接用在flash项目或actionScript项目中。

[kml_flashembed movie="http://www.fluidea.cn/blog/wp-content/uploads/2008/11/flashplayer10text.swf" height="360" width="480" /]

ps,今天安装了Flash cs4,感觉不是很好,第一反应是布局全乱了,有谁知道属性面板怎样才能恢复以前的那种布局吗?Flash越来越大,很杂的感觉。

Tags: FTE

Flex中使用Profiling调试时失败的可能原因

经反复实验,发现在Flex3中使用Profile工具调试时,可能会由于端口冲突导致无法启动。

Profile的实现基于socket,Flex Builder启动了一个后台程序,监听9999端口。由于我的机器上安装了red5,占用了9999端口,结果就总是有问题。

这里给遇到同样问题的人提个醒!

为数不多的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