多米桌面音乐AIR版发布--适用于Mac和Linux
九月 17th, 2011 by Lukialee这是在多米论坛 桌面音乐 发布的帖子
http://bbs.duomi.com/forum.php?mod=viewthread&tid=42439
1.先安装Adobe AIR,你懂的
http://get.adobe.com/cn/air/
2.下载桌面音乐安装包
http://down.duomi.com/DuomiDesktopMusic.air
用Flash Catalyst CS 5.5 制作Flex4皮肤
七月 31st, 2011 by LukialeeFlash Catalyst是专门为Flex 4制作皮肤的工具,当然产品经理也可以用它做界面原型和Demo,不用写任何代码,就可以实现各种交互功能,制作出丰富的动画。
在这里我不会讲述设计师如何在PS中做设计图,那是界面设计的范畴。仅仅讲述如何将PSD快速变成FLEX需要的皮肤,程序员就不必那么痛苦了,设计师也更有成就感!
完成设计图后,如果是PSD或者AI文件,可以直接导入到FC中。对于PSD,要事先把多余图层删除或者合并,将太复杂的图层效果合到位图中。
在FC中制作组件,有两种方式,可以把导入的图形元素转换成组件,
也可以从库里面拖进来按钮进行修改。

其实现在的FC还很不完善,就简简单单一个Button组件,就有很多问题。如果想要一个可以自由缩放的按钮,最好用矢量图。记住一定要有一个文本框被设为Label。
在导入Flex 4项目后,还需要把这个ButtonSkin中被设死的宽度和高度删除,比如这个:
最好改成
<s:Skin xmlns:fx=”http://ns.adobe.com/mxml/2009″ xmlns:s=”library://ns.adobe.com/flex/spark”
xmlns:fc=”http://ns.adobe.com/flashcatalyst/2009″ minWidth=”81″ minHeight=”21″ >
至于最小高度值,你可以随便设置。
还有一个属性大家可能经常用:icon。而用FC做的按钮竟然用不了这个属性。可以把 <s:Skin 改成<s:SparkButtonSkin,就可以了。这样在IDE中,就能直观地看到图标了。但是你却发现看不到文字了。没关系,在运行时文字就出来了。
所以现在用FLEX 3的组件还是比较稳妥。可惜做FLEX3的皮肤也是比较繁琐。各有各的麻烦。
其他组件的制作,之后我会补充。
Flash AS3 播放AAC(.m4a文件)
七月 14th, 2011 by Lukialee最近完成一个小产品
如这个链接所示:
http://app.baidu.com/dmyy_sggq?lid=100012
这个应用每天有十几万人的访问量,让我们的服务器有点吃不消了。于是考虑改成AAC的。
大家都知道AAC文件和MP3相比,低码率有更好的音质,但网络上大部分音乐资源都是MP3的。
幸好我们公司有多种格式、多种码率的音频文件,直接用AAC非常方便。
AAC是一种音频编码格式的名称,文件后缀名是.m4a。
其实Adobe官方网站早就提供了AAC播放的例子:http://www.adobe.com/devnet/flashplayer/articles/hd_video_flash_player.html
但是这个例子太单薄了,连进度调节也没有。当然这只是抛砖引玉,其他的功能要你自己来搞定。以下是核心代码
var stream_ns:NetStream = new NetStream(connect_nc);
//client?这是干啥?官方文档说了:“指定在其上调用回调方法的对象。指定在其上调用回调方法的对象。”
//其实就是指定任何一个对象,甚至是new Object(),只要它有一个onMetaData函数,可以处理返回的数据
stream_ns.client = this;
stream_ns.play("RE-Sample.m4a");//直接指定文件URL,还算简单
mySound = stream_ns.soundTransform;
mySound.volume = .5;//更改音量,看来和Sound类的用法差不多
stream_ns.soundTransform = mySound;
var mySound:SoundTransform;
var connect_nc:NetConnection = new NetConnection();
connect_nc.connect(null);
function onMetaData(p_info:Object):void{
//此处代码略去
}
播放、暂停很简单,NetStream给了三个方法:pause(), resume(), togglePause()。第三个函数,可以灵活地切换状态。
play()这个方法仅仅是开始播放某个文件。而resume()才是返回播放状态的函数。
NetStream的close()函数,可以完全停止播放。
接下来把大家关心的加载进度、播放进度讲一下。
通过NetStream的bytesLoaded和bytesTotal属性,就可算出来加载进度了。
time属性就是播放头的位置,注意是以秒为单位的。在NetStream的中你找不到文件时长的属性。这个需要通过onMetaData函数对文件信息的解析,得到文件时长,这也是以秒为单位的。例如:
public function onMetaData(p_info:Object):void {
aacFullTime = p_info.duration;
trace("Codec " + p_info.audiocodecid + " p_info.duration " + p_info.duration);
}
所以,你可以得到播放进度了。
要控制播放进度,就是说指定要播放到哪一秒:
ns.seek(position);
根据这些,你也可以制作一个完整的播放器了。要加上声音波形,依然是用SoundMixer。
在FLASH CS5中安装AIR 2.5 SDK
五月 19th, 2011 by LukialeeFlash CS5本身支持AIR 2.0 的程序发布,有一天ADOBE发布了“Adobe Flash Professional CS5 Extension for AIR 2.5”。请注意这是个测试版。如果想要稳定的程序,最好还是用正式版的。
http://labs.adobe.com/technologies/flashpro_extensionforair/
可惜在发布Flash CS 5.5后,就把这个页面清空了,无法下载扩展。还好我留下了这个文件:flashpro_extensionforair_p2_112210.zxp
似乎可以从这里下载http://www.mediafire.com/?a987upey9e6u645
大家自己找找吧。找不到的再问我要。
也就是说只有使用FLASH CS5.5,才可以在FLASH里用到最新的AIR SDK。
有牛人分享经验,要修改SWC文件:
http://priyeshsheth.wordpress.com/2011/03/25/adobe-air-2-6-with-flash-cs5/
这毕竟不是官方推荐的作法。还是努力下载5.5吧。

