1

我需要使用 OSMF 创建一个视频播放器。我想将我们的 mxml 文件与 actionscript 文件分开。我怎样才能做到这一点 ?我有一个 actionscript 类文件,我想在加载 mxml 时执行它的构造函数。

我添加了 creationComplete="initApp()" 并在 initApp 上调用var p = new myclass();. 现在在 myclass() 我正在尝试以编程方式添加标签

my_player.mxml

<?xml version="1.0" encoding="utf-8"?>
<!-- controls\videoplayer\VideoPlayerSimple.mxml-->
<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" creationComplete="initApp()"
               >
    <fx:Script>
        <![CDATA[
            public function initApp(){
                var p = new my_player("a");
            }
        ]]>
    </fx:Script>

</s:Application>

my_player.as

   package 
{
    import mx.controls.Label;
    import mx.core.Application;
    import mx.events.FlexEvent;
    import spark.components.Application;
    public class my_player extends spark.components.Application
    {
        public function convey_player(a:String){
            var label:Label = new Label();
            label.text = "Testxxx";
            addElement(label);
                    Alert.show("Hello");

        }
    }
}

但是什么都没有添加到 flash 中。我错过了什么吗?

4

1 回答 1

2

构造函数只会在创建对象 js 的实例时运行。如果要运行构造函数代码,则必须创建它的实例。在您的 MXML 文件中,为 creationComplete 事件添加一个事件侦听器,并在那里创建您的 ActionScript 对象的一个​​实例。

这将在 MXML 代码作为其组件生命周期的一部分完成其创建过程后有效地执行 ActionScript 类构造函数代码。

于 2013-02-26T20:05:40.280 回答