#flash #actionscript-3
#flash #actionscript-3
Вопрос:
Существует библиотечный компонент, представленный классом A. Но конструктору этого класса требуются некоторые параметры. Когда компонент нужно добавлять динамически, это нормально из-за кода :
var abc:A = новый A(param1,param2)
Но что, если мой movieclip уже присутствует на этапе разработки. Я замечаю, что выдает ошибку, что параметры равны нулю.
Есть ли у них какой-либо способ вставить параметры конструктора для movieclips, уже находящихся на стадии.
Спасибо
Ответ №1:
Вишвас, любые символы на стадии создания уже были созданы. Вы не можете снова вызвать их конструктор. Вместо этого попробуйте написать общедоступную функцию в этих классах, которая устанавливает нужные вам переменные. Внутренне, если эти переменные не заданы, вы можете переключить видимость на false и подождать или просто ничего не обрабатывать. Как только они установлены, ваши клипы выключаются и запускаются снова.
Затем, в дополнение к вызову общедоступной функции для клипов на этапе разработки, вы можете добавить необязательные параметры в конструктор для тех экземпляров, которые вы создадите с помощью кода, а не Flash IDE. Если параметры существуют в конструкторе, просто продолжайте и вызовите функцию прямо там.
public function Constructor ( var1:String = '', var2:MovieClip = null) {
if (var1 amp;amp; var2) init (var1, var2);
}
public function init (var1:String, var2:MovieClip) {
...
}
Ответ №2:
Вы можете установить параметры по умолчанию в конструкторе, например:
function A(param1:String = "default", param2:int=5):void {
}
Тогда видеоролики, добавленные на этап, будут использовать эти значения по умолчанию, но вы можете использовать другие параметры в динамически создаваемых компонентах.