Actionscript 3 从as3类创建的mxml组件调用方法?
好的,我一直在用as3而不是mxml开发我的项目,我通常只是将我的应用程序设置为运行一个主actionscript文件作为我的主文档根,有点像在flash中这样做,但在flash builder中,我会这样做: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
<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
}