Это немного сбивает с толку, что именно вы ищете, но я попробую.
Как я могу вызвать функцию в 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);
}
Хотя у меня есть первоначальные сомнения относительно такого подхода, поэтому я бы не рекомендовал его без полного понимания варианта использования.