随机生成SWFLoader源

时间:2015-12-07 23:00:38

标签: actionscript-3 flash flex mxml swfloader

我想在flex中创建一个显示随机生成的swf的视图。 以下代码可以运行,但我的swf没有显示?如何解决这个问题?

$scope.iframeVisible

1 个答案:

答案 0 :(得分:1)

在您发布的代码中,您有一些小错误:

  1. 如果您希望random()函数设置SWFLoader对象的来源,则应返回SWF的URL,而不是将其用作参数。
  2. public function random():String 
    {
        // ...
    
        return url;
    }
    
    1. 我知道您使用Loader对象,可能是出于测试目的,但您不需要使用SWFLoader对象。
      1. 要在MXML代码中使用bindable数据源(random()功能),您可以使用:
      2. 花括号({})语法:

        <mx:SWFLoader width="480" height="320" id="loader1" source="{random()}"/>
        

      3. <fx:Binding>代码:

        <fx:Binding 
            source="random()"
            destination="loader1.source"
        />
        <mx:SWFLoader  width="480" height="320" id="loader1" source=""/>
        

        所以你的最终代码可以是这样的:

        <fx:Script>
            <![CDATA[   
                public function random():String 
                {
                    var movieArray:Array = ['swf/maily_you', 'swf/maily_work', 'swf/maily_start'];
                    var loader:Loader = new Loader(); 
                    var index:int = movieArray.length * Math.random(); 
                    var url:String = movieArray[index] + '.swf'; 
                    return url;
                }
            ]]>     
        </fx:Script>
        <s:Panel width="100%" height="100%">
            <mx:SWFLoader  width="480" height="320" id="loader1" source="random()"/> 
        </s:Panel>
        

        如需了解更多信息,请查看data binding

        希望可以提供帮助。