public function CustomButton(
buttonlabel:String,
animationAR:Array,
active:Boolean=true,
animated:Boolean = false,
type:String = "free",
group:int = 0
);
Так вы определили свой конструктор.Это означает, что первые 2 аргумента (buttonlabel
abd animationAR
) являются обязательными аргументами.Остальные необязательны.
Теперь, если вы попытаетесь создать такой экземпляр, как
var cb:CustomButton=new CustomButton();
Вы не передаете никаких аргументов в конструкцию, которая выдаст эту ошибку.
Обратите внимание, что этоэто то, что происходит, когда вы создаете объект непосредственно в пользовательском интерфейсе.
Способ исправить это - переопределить конструктор следующим образом:
public function CustomButton(
buttonlabel:String="CustomButton",
animationAR:Array=[],
active:Boolean=true,
animated:Boolean = false,
type:String = "free",
group:int = 0
);
Это делает все аргументы необязательными и должно работать.Конечно, вам лучше всего поставить значение аргументов по умолчанию, как то, что вы знаете, будет работать.Например, в моем примере пустой массив по умолчанию для animationAR
может нарушить ваш код, и в этом случае вам нужно добавить это в тело конструктора:
if(animationAR.length==0) {
animationAR.push(new Animation());
//YOU WILL HAVE TO CHANGE THIS LINE TO CORRESPOND TO YOUR CODE
}
ИЛИ ELSE, вы можете создать экземпляр объектакак
var cb:CustomButton=new CustomButton("My Crazy-ass CustomButton", animArray);