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>
  • 相关阅读:
    django-based blog- mezzanine
    echo "hello" | nc -4t -w1 localhost 8001
    boost静态链接的问题 -lgcc_s
    Vim 新用法
    解决docker中DNS查询的问题
    centos 升级GCC/G++
    enable c++11 in autoconf in fucking gnu auto tools
    Fucking "pkg-config not found"
    在CentOS 6.X 上面安装 Python 2.7.X
    redis sentinel 配置
  • 原文地址:https://www.cnblogs.com/taobataoma/p/1037026.html
Copyright © 2011-2022 走看看