如何创建简单的Flex模块(module)的例子
By Minidxer | July 14, 2008
接下来的例子演示了如何创建简单的Flex模块(module),以及从父类应用中调用模块中的事件。
让我们先来看一下Demo(可以右键View Source或点击这里察看源代码):
下面是完整代码(或点击这里察看):
Download: main.mxml
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
- layout="vertical"
- verticalAlign="middle"
- backgroundColor="white">
- <mx:Script>
- <![CDATA[
- import mx.events.VideoEvent;
- [Bindable]
- private var moduleTitle:String;
- private var vm:VideoModule;
- private function init():void {
- vm = VideoModule(m1.child);
- moduleTitle = vm.getModuleTitle();
- }
- private function stopVideo():void {
- vm.stopVideo();
- }
- private function playPauseVideo():void {
- vm.playPauseVideo();
- }
- ]]>
- </mx:Script>
- <mx:Panel id="panel"
- title="Module: {moduleTitle}">
- <mx:ModuleLoader id="m1"
- url="VideoModule.swf"
- ready="init();"/>
- <mx:ControlBar>
- <mx:Button label="Play/Pause" click="playPauseVideo()" />
- <mx:Button label="Stop" click="stopVideo()" />
- <mx:Spacer width="100%" />
- <mx:Label id="playheadTime" fontWeight="bold" />
- </mx:ControlBar>
- </mx:Panel>
- </mx:Application>
下面是视频模块的代码:
Download: VideoModule.mxml
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Module xmlns:mx="http://www.adobe.com/2006/mxml"
- width="100%"
- height="100%">
- <mx:Script>
- <![CDATA[
- public function getModuleTitle():String {
- return "Video Module";
- }
- /* Stop the video playback. */
- public function stopVideo():void {
- videoDisplay.stop();
- }
- /* If the video is currently playing, pause playback. Otherwise, resume playback. */
- public function playPauseVideo():void {
- if (videoDisplay.playing) {
- videoDisplay.pause();
- } else {
- videoDisplay.play();
- }
- }
- private function updateVideoTime():void {
- /* If the playheadTime is 0, the DateFormatter returns an empty string.
- To work around this we can default the time to 10ms if the playheadTime
- is zero. */
- var pTime:Date = new Date(videoDisplay.playheadTime * 1000 || 10);
- var tTime:Date = new Date(videoDisplay.totalTime * 1000);
- parentApplication.playheadTime.text = dateFormatter.format(pTime) + " / " + dateFormatter.format(tTime);
- }
- ]]>
- </mx:Script>
- <mx:DateFormatter id="dateFormatter"
- formatString="NN:SS" />
- <mx:VideoDisplay id="videoDisplay"
- source="http://www.helpexamples.com/flash/video/cuepoints.flv"
- playheadUpdate="updateVideoTime();" />
- </mx:Module>
代码:Peter deHaan 翻译/整理/编译:minidxer
Topics:
Flex |
1 Comment » |
3,275 views
Tags: child, Flex模块, Module, ModuleLoader, parentApplication
呵呵,感觉你的例子都很好,就是说明有点简单了,不容易学