Flash 从MXML调用actionscript包函数

Flash 从MXML调用actionscript包函数,flash,apache-flex,actionscript,Flash,Apache Flex,Actionscript,如何从MXML调用btn.as中的函数?是否可以在不创建btn实例的情况下调用函数 main.mxml包含一个火花按钮: <s:Button text="Add Image"/> 你到底想要什么有点让人困惑,但我会试试看 如何从MXML调用btn.as中的函数 我假设您希望在单击按钮时调用btn组件实例上的addImage函数。你可以这样做: <s:Button text="Add Image" click="{btnInstance.addImage()}"/>

如何从MXML调用btn.as中的函数?是否可以在不创建btn实例的情况下调用函数

main.mxml包含一个火花按钮:

<s:Button text="Add Image"/>

你到底想要什么有点让人困惑,但我会试试看

如何从MXML调用btn.as中的函数

我假设您希望在单击按钮时调用btn组件实例上的addImage函数。你可以这样做:

<s:Button text="Add Image" click="{btnInstance.addImage()}"/>
    package {
        public class btn extends Sprite {
            public function btn() {
            }

            public static function addImage():void {
               var im:Image = new Image("background.png");
               addChild(im);
            }
        }
    }
<s:Button text="Add Image" click="{btn.addImage()}"/>
            public static function addImage(container:UIComponent):void {
               var im:Image = new Image("background.png");
               container.addChild(im);
            }
然后您可以像这样调用静态方法:

<s:Button text="Add Image" click="{btnInstance.addImage()}"/>
    package {
        public class btn extends Sprite {
            public function btn() {
            }

            public static function addImage():void {
               var im:Image = new Image("background.png");
               addChild(im);
            }
        }
    }
<s:Button text="Add Image" click="{btn.addImage()}"/>
            public static function addImage(container:UIComponent):void {
               var im:Image = new Image("background.png");
               container.addChild(im);
            }

不过,我对这样的方法有最初的保留,因此在没有充分理解用例的情况下,我不会推荐它

你解释得对,我很难调用将图像添加到精灵中,当假设“private var mMainMenu:sprite;”哪个mMainMenu将替换上面示例中的“container”时,它仍然无法将图像添加到mMainMenu,因为这是“静态”的。我觉得这些问题没有理想的解决办法?我不确定你想解决什么问题。我怀疑你的应用程序存在架构问题;但从我知道的一个小片段很难判断。