0

Flex 的新手,我试图找出一种方法来调用在应用程序的“firstView”视图上声明的公共方法。我如何获得参考?

主视图

<?xml version="1.0" encoding="utf-8"?>
<s:ViewNavigatorApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" applicationDPI="160"  firstView="views.loaderView" creationComplete="init()">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <fx:Script>
        <![CDATA[
            private function init():void{
                //how do I access this method?
                        loaderView.setLoaderMsg("My Message");
            }
        ]]>
    </fx:Script>
</s:ViewNavigatorApplication>

装载机视图

    <fx:Declarations>
        <s:RadioButtonGroup id="rg"/>
    </fx:Declarations>

    <s:layout>
        <s:VerticalLayout paddingTop="10" paddingBottom="15" paddingLeft="15" paddingRight="15" gap="15" 
                          horizontalAlign="center" verticalAlign="middle"/>
    </s:layout>
    <s:BusyIndicator/>  
    <s:Label id="loaderMsg" text="Loading..." />

</s:View>
4

2 回答 2

3

默认情况下,MXML 中定义的所有子项都位于公共命名空间中,因此您可以通过点符号轻松访问它。这是 Flex 中第一步最简单的方法。

<?xml version="1.0" encoding="utf-8"?>
<s:ViewNavigatorApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                            xmlns:s="library://ns.adobe.com/flex/spark" 
                            applicationDPI="160"
                            firstView="views.loaderView"
                            creationComplete="init()">
  <fx:Declarations>
  <!-- Place non-visual elements (e.g., services, value objects) here -->
  </fx:Declarations>
  <fx:Script>
    <![CDATA[
      private function init():void{
        trace(navigator.activeView);
        // const first:loaderView = navigator.activeView as loaderViewM
        // first.loaderMsg.text = "My Message";
      }
    ]]>
  </fx:Script>
</s:ViewNavigatorApplication>
于 2012-06-10T12:50:52.950 回答
1

使用 FlexGlobals.topLevelApplication.myPublicFunction

于 2012-06-10T14:44:03.817 回答