Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 如何访问flex中自定义组件之外的公共函数?_Actionscript 3_Apache Flex - Fatal编程技术网

Actionscript 3 如何访问flex中自定义组件之外的公共函数?

Actionscript 3 如何访问flex中自定义组件之外的公共函数?,actionscript-3,apache-flex,Actionscript 3,Apache Flex,我有一个应用程序宽度amx:ViewStack组件,每个s:NavigatorContent下有不同的视图组件,如下所示 <mx:ViewStack id="vsOne" resizeToContent="true"> <s:NavigatorContent label="First"> <package:MyFirstComponent id="myFirstComponent"/> </s:NavigatorConte

我有一个应用程序宽度a
mx:ViewStack
组件,每个
s:NavigatorContent
下有不同的视图组件,如下所示

<mx:ViewStack id="vsOne" resizeToContent="true">
    <s:NavigatorContent label="First">
        <package:MyFirstComponent id="myFirstComponent"/>
    </s:NavigatorContent>
    <s:NavigatorContent label="Second">
        <package:MySecondComponent id="mySecondComponent"/>
    </s:NavigatorContent>
</mx:ViewStack>
我所尝试的:

  • 在视图组件中调用
    somethingToGoForward()
    ,并使用triyng访问父级
    vsOne
    :不工作
  • 调用
    parent.somethingtoForward()
    (当此方法与
    ViewStack
    位于同一mxml中时):不工作
  • 如何从包含它的mxml文件之外的任何位置更改我的
    ViewStack
    selectedIndex


    谢谢。

    这是一个使用简单事件的示例:

    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"     initialize="application1_initializeHandler(event)"
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"  xmlns:local="*">
        <fx:Script>
        <![CDATA[
            import mx.events.FlexEvent;
    
            protected function application1_initializeHandler(event:FlexEvent):void
            {
                viewStack.selectedChild=one;
    
            }
    
            protected function one_changeViewHandler(event:FlexEvent):void
            {
                viewStack.selectedChild=two;
            }
    
            protected function two_changeViewHandler(event:FlexEvent):void
            {
                viewStack.selectedChild=one;
    
            }
    
        ]]>
    </fx:Script>
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <mx:ViewStack id="viewStack" >
        <local:ccomp id="one" changeView="one_changeViewHandler(event)" text="LAbel ONE">
    
        </local:ccomp>
        <local:ccomp id="two" changeView="two_changeViewHandler(event)" text="LAbel TWO" >
    
        </local:ccomp>
    </mx:ViewStack>
    </s:Application>
    
    
    
    ccomp是一个自定义组件

    <?xml version="1.0" encoding="utf-8"?>
        <mx:HBox xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300">
    <fx:Metadata>
        [Event(name="changeView", type="mx.events.FlexEvent")]  
    </fx:Metadata>
    <fx:Script>
        <![CDATA[
            import mx.events.FlexEvent;
    
            private var _text:String;
    
            public function get text():String
            {
                return _text;
            }
            [Bindable]
            public function set text(value:String):void
            {
                _text = value;
            }
    
            protected function button1_clickHandler(event:MouseEvent):void
            {
                this.dispatchEvent(new FlexEvent("changeView",true));               
            }
        ]]>
    </fx:Script>
    
    <fx:Declarations>
    </fx:Declarations>
        <s:Button label="Change" click="button1_clickHandler(event)">
        </s:Button>
        <s:Label fontSize="24" text="{text}">
        </s:Label>
       </mx:HBox>
    
    
    [事件(name=“changeView”,type=“mx.events.FlexEvent”)]
    

    Davide

    这是否有助于:事件。。当然谢谢帮了大忙!
    <?xml version="1.0" encoding="utf-8"?>
        <mx:HBox xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300">
    <fx:Metadata>
        [Event(name="changeView", type="mx.events.FlexEvent")]  
    </fx:Metadata>
    <fx:Script>
        <![CDATA[
            import mx.events.FlexEvent;
    
            private var _text:String;
    
            public function get text():String
            {
                return _text;
            }
            [Bindable]
            public function set text(value:String):void
            {
                _text = value;
            }
    
            protected function button1_clickHandler(event:MouseEvent):void
            {
                this.dispatchEvent(new FlexEvent("changeView",true));               
            }
        ]]>
    </fx:Script>
    
    <fx:Declarations>
    </fx:Declarations>
        <s:Button label="Change" click="button1_clickHandler(event)">
        </s:Button>
        <s:Label fontSize="24" text="{text}">
        </s:Label>
       </mx:HBox>