首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flex 4在应用程序中-Reloading一个SWF

Flex 4在应用程序中-Reloading一个SWF
EN

Stack Overflow用户
提问于 2010-11-13 09:26:51
回答 1查看 982关注 0票数 0

我并没有试图弄清楚如何将参数传递给嵌入式SWF,而是使用不同的值编译了20个SWF。这些SWF现在位于我的Flash Builder应用程序中。

每个SWF都有一个状态(使用includeIn),因此当用户单击按钮切换状态时,会显示相应的SWF。

问题是,当用户查看SWF时,它仍然在后台加载和运行。我想在用户离开状态时卸载查看的SWF,然后在再次需要时加载它。如果这是不可能的,那么我将满足于在进入状态时简单地重新加载SWF,而只是让其他19个在后台运行。

我有以下几点:

代码语言:javascript
复制
<fx:Script><![CDATA[

    private var flashMovie1:MovieClip;
    private var flashMovie2:MovieClip;

    private function initFirst():void{
        flashMovie1 = dmp_first.content as MovieClip;
    }

    private function initSecond():void{
        flashMovie2 = dmp_second.content as MovieClip;
    }

    protected function btnFirst_clickHandler():void
    {
        flashMovie2.Stop();
        currentState='First';
        flashMovie1.Play();
    }

    protected function btnSecond_clickHandler():void
    {
        flashMovie1.Stop();
        currentState='Second';
        flashMovie2.Play();
    }

]]></fx:Script>

<mx:SWFLoader id="dmp_first" includeIn="First" source="assets/images/dmp_first.swf" complete="initFirst()"/>

<mx:SWFLoader id="dmp_second" includeIn="Second" source="assets/images/dmp_second.swf" complete="initSecond()"/>

加上上面的代码在停止和播放中根本不起作用,我仍然不知道如何强制SWF重新加载。任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-13 16:13:27

使用conatiner一次只能有一个swf。同样,你也不必使用state :)来表示ex:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<s:Application 
xmlns:fx    = "http://ns.adobe.com/mxml/2009" 
xmlns:s     = "library://ns.adobe.com/flex/spark" 
xmlns:mx    = "library://ns.adobe.com/flex/mx" 
minWidth    = "955" 
minHeight   = "600">

<s:layout>
    <s:VerticalLayout/>     
</s:layout>

<fx:Script>
    <![CDATA[
        import mx.controls.SWFLoader;

        private function onAppCreationComplete():void
        {
            showSWF(0);
        }

        private function onSwfComboChange():void
        {
            showSWF(cbxSwfData.selectedIndex);
        }

        private function showSWF(index:int):void
        {
            grpContainer.removeAllElements();

            var swfLoader:SWFLoader = new SWFLoader();
            grpContainer.addElement(swfLoader);
            swfLoader.load("assets/swfs_files/swf"+index+".swf");
        }

    ]]>
</fx:Script>

<s:ComboBox
    id                  = "cbxSwfData"
    dataProvider        = "{['swf1','swf2','swf3']}"
    change              = "onSwfComboChange()"/>

<s:Group
    id                  = "grpContainer"
    width               = "50%"
    height              = "50%"/>

</s:Application>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4170419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档