Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.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 从as3类创建的mxml组件调用方法?_Actionscript 3_Mxml_Flash Builder - Fatal编程技术网

Actionscript 3 从as3类创建的mxml组件调用方法?

Actionscript 3 从as3类创建的mxml组件调用方法?,actionscript-3,mxml,flash-builder,Actionscript 3,Mxml,Flash Builder,好的,我一直在用as3而不是mxml开发我的项目,我通常只是将我的应用程序设置为运行一个主actionscript文件作为我的主文档根,有点像在flash中这样做,但在flash builder中,我会这样做: <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" .....etcetc > <com:MyAS3DocClass> </com> <f

好的,我一直在用as3而不是mxml开发我的项目,我通常只是将我的应用程序设置为运行一个主actionscript文件作为我的主文档根,有点像在flash中这样做,但在flash builder中,我会这样做:

<s:Application 
    xmlns:fx="http://ns.adobe.com/mxml/2009" 
    .....etcetc
>

    <com:MyAS3DocClass>
    </com>

    <fx:Script>
        <![CDATA[
            public function call_from_outside():void
            {
                //Some code stuff here...
            }
        ]]>
    </fx:Script>

</s:Application>
我的问题是,如何在
标记之间的
call\u from\u outside()
函数中调用该函数

我这样做的原因是因为我有一些flash swf,我将它们加载到另一个swf文件中,并且我可以访问这些flash swf的顶级公共函数,但是flash builder/flex swf的顶级是主mxml文件,而不是我伪造的as3类根。当然,我应该认为我有办法访问mxml组件的as3类方法,但是为了保持结构不变,我可以不必修改我的加载程序脚本。有人有什么想法吗?

(请注意,我在下面更改了您的结束标记。如果您忽略此项,将导致头痛)

看起来您只需向自定义类添加ID即可:

<com id="myCustomClass">
    </com:MyAS3DocClass>
这就是原因! 当您为MXML文件中的标记分配ID时,这与将
public var:
添加到as文件是一样的(当然,这是由编译器完成的,因此您不必在意)。一旦您为MyAS3DocClass分配了一个ID,它将立即成为一个可公开访问的变量。一旦它是一个可公开访问的变量,就可以在公共、受保护、内部、命名空间和私有函数中使用它

如果您不喜欢这个想法,并且您的自定义类是DisplayObject,您也可以这样做:

<com:MyAS3DocClass name="myCustomClass" />
(请注意,我在下面更改了您的结束标记。如果您忽略该标记,将导致头痛)

看起来您只需向自定义类添加ID即可:

<com id="myCustomClass">
    </com:MyAS3DocClass>
这就是原因! 当您为MXML文件中的标记分配ID时,这与将
public var:
添加到as文件是一样的(当然,这是由编译器完成的,因此您不必在意)。一旦您为MyAS3DocClass分配了一个ID,它将立即成为一个可公开访问的变量。一旦它是一个可公开访问的变量,就可以在公共、受保护、内部、命名空间和私有函数中使用它

如果您不喜欢这个想法,并且您的自定义类是DisplayObject,您也可以这样做:

<com:MyAS3DocClass name="myCustomClass" />

啊,对了,就这么简单?酷,是的,就是这么简单,哈哈,干杯,对吧,就是这么简单?酷,是的,就是那个简单的lol干杯,巴德
        public function call_from_outside():void
        {
            MyAS3DocClass(getChildByName("myCustomClass")).hitme();
            //other stuff
        }