之前给大家推荐Adobe的官方视频教程来学习Flex。但毕竟是英文的,有所不便。后来发现了艾睿论坛上的《Flash Builder 4 快速入门》,是中文的喔,讲得很好,可以结合着Adobe的官方视频教程一起看,理解得更透彻。
不过美中不足的是,这个教程上P73页上关于用MXML开发自定义播放器组件的示例有点问题,会出现“VideoElement无法解析为组件”等错误。经过验证,特纠正如下:
1. 示例中CustomPlayer项目下的CustomPlayer.mxml第5行左右和CustomPlayerSample项目下的CustomPlayer.mxml第4行左右:
xmlns:mx="library://ns.adobe.com/flex/halo"应该修改为:
xmlns:mx="library://ns.adobe.com/flex/mx"
2. CustomPlayerSample项目下的CustomPlayer.mxml第50行左右:
<s:List>中的selectionChanged="play(event);"应该修改为:
change="play(event);"
3. CustomPlayer项目下的CustomPlayer.mxml第6行左右:
这里首先需要下载两个文件:Audio.as和AudioEvent.as,然后将它们粘贴到项目中,如图:
然后xmlns:rojored="com.rojored.view.controls.*"应该修改为:
xmlns:rojored="../com.rojored.controls.*"
4. CustomPlayer项目下的CustomPlayer.mxml第163行左右:
<rojored:Audio id="audio"/>应该修改为:
<local:Audio id="audio"/>
另外,在第8行左右的creationComplete="init();"之后增加一句:
xmlns:local="*">
5. CustomPlayer项目下的CustomPlayer.mxml第170行左右:
<s:VideoElement id="video"应该修改为:
<s:VideoPlayer id="video"
另外,在141行左右:
playObject is VideoElement应该修改为:
playObject is VideoPlayer
6. CustomPlayer项目下的CustomPlayer.mxml第217行左右:
valueInterval="0"应该修改为:
snapInterval="0"
本文参考资料:
(1)“Flash builder 4中文快速入门”中CustomPlayerSample例子不能编译的代码修正!
(3)Flex4学习笔记之一