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
Apache flex 在actionscript函数中公共/私有有哪些限制?_Apache Flex_Actionscript 3 - Fatal编程技术网

Apache flex 在actionscript函数中公共/私有有哪些限制?

Apache flex 在actionscript函数中公共/私有有哪些限制?,apache-flex,actionscript-3,Apache Flex,Actionscript 3,我目前正在维护一些flex代码,并注意到很多函数声明如下: private function exampleFunc():void { .... } 这些函数在全局范围内,并且不是任何特定类的一部分,因此我有点不清楚将它们声明为private会产生什么影响。“private”限定符对这样的函数有什么限制?全局范围是什么意思?这些函数是否在主MXML文件中声明 一般来说,private意味着只能从声明函数的类中调用函数。mxmlc代码中包含的actionscript函数将作为mxmlc组

我目前正在维护一些flex代码,并注意到很多函数声明如下:

private function exampleFunc():void {
    ....
}

这些函数在全局范围内,并且不是任何特定类的一部分,因此我有点不清楚将它们声明为private会产生什么影响。“private”限定符对这样的函数有什么限制?

全局范围是什么意思?这些函数是否在主MXML文件中声明


一般来说,private意味着只能从声明函数的类中调用函数。

mxmlc代码中包含的actionscript函数将作为mxmlc组件的一部分提供,mxmlc组件在幕后编译为类。因此,将它们标记为私有会使它们无法访问

下面是一个例子来说明这一点,假设您有以下组件,我们将其称为FooBox:


<!-- FooBox.mxml -->
<mx:Box xmlns:mx="http://www.macromedia.com/2003/mxml">
    <mx:Script><![CDATA[
        private function foo():void {
            lbl.text = "foo";
        }
        public function bar():void {
            lbl.text = "bar";
        }
    ]]></mx:Sctipt>
    <mx:Label id="lbl">
</mx:Box>


如果bar函数位于主mxmlc代码中

但是,当你把它放到一个actionscript文件中时,它仍然被编译到一个类中吗

因为asdoc不喜欢它


<mx:Application
 xmlns:mx="http://www.macromedia.com/2003/mxml"
 xmlns:cc="controls.*"
>
     <mx:Script><![CDATA[
       private function init():void {
            fbox.foo(); // opps, this function is unaccessible.
            fbox.bar(); // this is ok...
       }
    ]]></mx:Sctipt>
    <cc:FooBox id="fbox" />
</mx:Application>

Application.application.bar();