Actionscript 3 - передача пользовательского класса в качестве параметра в пользовательский класс, где класс параметров не создан - PullRequest
0 голосов
/ 16 июня 2011

Привет и спасибо заранее, у меня есть собственный класс, созданный из моего основного класса.В пользовательском классе он имеет другой пользовательский класс, который передается в качестве параметра.Я хотел бы строго ввести переменную параметра, но когда я это сделаю, «тип не является константой типа компиляции и т. Д.».Это, я понимаю, потому, что пользовательский класс, используемый в качестве параметра, еще не создан.Все это работает, когда я использую тип переменной (*) для ввода параметра.Я подозреваю, что это недостаток дизайна, поскольку я использую неправильный шаблон дизайна.На самом деле это просто код, получивший большой проект от кого-то, кто не совсем знаком с основными понятиями и шаблонами проектирования.Я рассмотрел использование фиктивного конструктора для параметризованного класса в моем основном классе, но переданный в класс также принимает пользовательский класс (сам с параметризованным конструктором).Я рассматриваю возможность использования ... (rest), чтобы параметры пользовательских классов были необязательными.Есть ли другой способ контролировать порядок построения классов?Будут ли работать остальные переменные?Спасибо

(редактировать) в main.as внутри конструктора или другой функции

var параметр1: customclass2;

customclass1 (параметр1);

в customclass1Конструктор:

открытая функция customclass1 (параметр1: customclass2) {....

Flash жалуется, что не удается найти скомпилированный тип, когда я использую тип данных customclass 2 в параметре.Он не жалуется, когда я использую переменный тип данных * или пропускаю тип данных (который в любом случае по умолчанию *).Я полагаю, что это потому, что customclass2 еще не был создан и поэтому не доступен для компилятора.Кроме того, я не добавил путь к customclass2 в компилятор, но я уверен, что исключил это.Существует более 10000 строк кода, и все это работает очень хорошо.Я переписываю просто для оптимизации для компилятора - строгая типизация данных, обработка ошибок и т. Д. Если я найду ситуацию, когда наследование и т. Д. Доступно в качестве опции, я буду использовать ее, но она уже разделена на классы (по крайней мере, вОсновная часть).Это просто для моего собственного спокойствия и соблюдения политики строгой типизации данных, чтобы оптимизация компилятора работала более эффективно.Thnx

1 Ответ

1 голос
/ 16 июня 2011

Я не добавил путь к customclass2 в компилятор, но я уверен, что исключил это.

Так что если у вас нет нигде написанного класса, что можеткомпилятор делать?Это задохнется конечно.Вы должны либо написать файл класса CustomClass, либо просто использовать "thing: Object" или "thing: Asteriks".Это не будет жаловаться, когда вы используете тип класса "*", потому что это может быть что угодно, массив, строка, ранее объявленный класс.Но если вы укажете что-то, что не существует, оно просто захлебнется, независимо от того, в каком порядке объявлены параметры.

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