从mxml执行Actionscript类函数

时间:2013-02-26 19:38:47

标签: flash flex mxml osmf

我需要使用OSMF创建一个视频播放器。我想从actionscript文件中分离我们的mxml文件。我怎样才能做到这一点 ?我有一个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");

        }
    }
}

但闪光灯没有添加任何内容。我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

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

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