вызвать пакетную функцию actionscript из MXML - PullRequest
0 голосов
/ 08 октября 2011

Как я могу вызвать функцию в btn.as из MXML и можно ли вызвать функцию без создания экземпляра btn?

main.mxml, который содержит кнопку Spark:

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

btn.as - это пакет:

package {
    public class btn extends Sprite {
        public function btn() {
        }

        public function addImage():void {
           var im:Image = new Image("background.png");
           addChild(im);
        }
    }
}

1 Ответ

0 голосов
/ 08 октября 2011

Это немного сбивает с толку, что именно вы ищете, но я попробую.

Как я могу вызвать функцию в btn.as из MXML

Я собираюсь предположить, что вы хотите вызвать функцию addImage для экземпляра компонента btn при нажатии кнопки.Вы можете это так:

<s:Button text="Add Image" click="{btnInstance.addImage()}"/>

Если вы хотите что-то еще, вам придется уточнить.

можно ли вызвать функцию, не создавая экземпляр btn?

Да, сделать это статическим методом.Примерно так:

    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()}"/>

Предостережение заключается в том, что я не ожидаю, что addChild сделает что-нибудь полезное внутристатический метод.Если экземпляр компонента отсутствует, его нет в списке отображения;и ваш новый "ребенок" никогда не будет отображаться.На самом деле, не было бы никакого способа сослаться на нового ребенка.Я полагаю, вы можете передать контейнер в функцию addImage и добавить туда дочерний элемент.Концептуально это так:

            public static function addImage(container:UIComponent):void {
               var im:Image = new Image("background.png");
               container.addChild(im);
            }

Хотя у меня есть первоначальные сомнения относительно такого подхода, поэтому я бы не рекомендовал его без полного понимания варианта использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...