在<fx:script>标签中调用函数</fx:script>

时间:2013-07-07 00:50:00

标签: actionscript-3 function call mxml

我有点难过。我认为只需引用函数(“display_album()”就可以在fx:Script标签内调用一个函数,如下面的代码所示)。将该函数调用在大括号之外是有意义的,但是当我这样做时,FlashBuilder中的调试器会给出1180错误,调用可能未定义的方法。

我可以通过单击按钮来调用该函数(这也很有意义),并且我在FlashBuilder调试器中获得了正确的跟踪。

但我很好奇如何在不添加按钮的情况下调用标签中的函数。谢谢!

 <?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">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>

    <fx:Script>
        <![CDATA[

            public function display_album():void
            {
                var album:String = "The White Album";
                trace (album);

            }

            display_album();

        ]]>
    </fx:Script>
    <s:Button x="192" y="259" label="Button" click = "display_album()"/>

</s:Application>

2 个答案:

答案 0 :(得分:0)

<?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"
           initialize="init()">
<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>

<fx:Script>
    <![CDATA[
        private function init():void
        {
          display_album();
        }

        public function display_album():void
        {
            var album:String = "The White Album";
            trace (album);

        }

    ]]>
</fx:Script>
<s:Button x="192" y="259" label="Button" click = "display_album()"/>

我希望这会有所帮助。

答案 1 :(得分:0)

你不能像这样调用实例函数,因为它在调用构造函数之前运行。由于实例本身尚未初始化,因此可以执行此功能。您只能在调用构造函数之前调用类函数。

您可以通过static关键字将方法转换为类方法(在这种情况下可能不正确),或者在creationComplete事件上触发此方法。