zoukankan      html  css  js  c++  java
  • Building a simple Flex module

    I’ve been playing around with Flex Modules lately and thought I’d post this. It’s pretty basic, but it is kind of a “my first module” type experiment. I tried to show a few different things including: calling a module’s methods from the parent application as well as setting properties in the parent application from the loaded module.

    If you haven’t looked at modules in Flex yet, I highly encourage you to check out the Flex Doc Team blog at http://blogs.adobe.com/flexdoc/, where you can find their latest version of the “Creating Modular Applications” chapter (blog entry, PDF).

    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
        
    <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 url="VideoModule.swf" id="m1" 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>

    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>
  • 相关阅读:
    css盒子模型
    怎么查看浏览器内核以及浏览器版本
    matlab 读取文件(mat)存储为json文件
    js的闭包
    听别人报告
    关于windows下 python3安装 cython的说明
    python某个module使用了相对引用,同时其__name__又是__main__导致的错误
    python编程指南
    javacc在stanfordnlp中的应用
    hystrix熔断机制修改配置
  • 原文地址:https://www.cnblogs.com/taobataoma/p/1037026.html
Copyright © 2011-2022 走看看