В настоящее время у меня есть массив, в котором есть 9 кнопок. Это называется BAR.as:AS3 - Доступ к статической функции через массив
public static var buttonArray: Array = new Array()
for(var i:int = 0; i<9; i++){
barButton = new button
buttonArray.push(barButton)
buttonArray[i].name = button+(String[i])
buttonArray[i].x = 15+(i*buttonArray[i].width)
addChild(buttonArray[i])
}
В классе для моей кнопки я указывающего функцию enableButton, это называется ACTIONBARBUTTON.as:
public static function enableButton(shortcut:int):void{
//instance.refreshThis(shortcut, true)
trace("test")
}
То, что я пытаюсь сделать, это есть функцию, которую я могу вызвать для включения/выключения этих кнопок (но не просто «.enable»/«. disable») по требованию, так как содержимое внутри них должно часто меняться. Мой способ сделать это будет через BAR.as:
public static function updateWeapons(level: int):void{
buttonArray[level-1].enableButton(level)
}
Однако это возвращает следующее сообщение об ошибке:
ReferenceError: Error #1069: Property enableButton not found on src.actionbar.button and there is no default value.
at src.actionbar::bar$/updateWeapons()
at src.game::player$/levelup()
at src.game::gameplay/init()
at flash.display::DisplayObjectContainer/addChildAt()
at src.camera::control()
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
Просто работает button.enableButton (1) работает отлично.
Это вызывает проблемы, поскольку у меня есть 10 "кнопка", вызываемая через массив. Как бы я включил «enabledButton (1)», например, button3? –
Поскольку вы держите кнопки в массиве, вы можете сделать что-то вроде этого: function enableButton (index: int): void { buttonArray [index] .enableButton(); } Просто убедитесь, что индекс не находится за пределами границ. –
Единственная проблема тогда в том, что я использовал ее как статическую функцию, а не только публичную функцию? (он работает сейчас) –