![]() |
Передача свойства из abc.as в главную
Добрый вечер.
Идея заключается в следующем: есть главный код и внешний. Во внешнем создал новый класс Button_color с функцией. Эта функция сама создаёт кнопку "button" с координатами "corX" и "corY", при её нажатии работает функция fadeInClick которая должна вывести на сцену мувик "mc" из библиотеки Проблема в следующем. Не хочет вопроизводить свойство "mc", а так как таких мувиков будет много и хотелось бы просто в основном файле при вызове класса указывать какой мувик мне нужен. Если подгружать мувик напрямую а не задавать его как свойство, то всё работает шикарно. Соответсвенно подозреваю что я его неправильно "преподаю" для главного кода . Ошибка "1067: Implicit coercion of a value of type Class to an unrelated type String." Код внешнего класса: Код AS3:
Код AS3:
|
1. Для офрмления кода есть теги AS3
2. Касательно вашей проблемы. Вы передаёте обыкновенную строку, а хотите от неё экземпляра класса. Решение: 1. Либо передавать класс в качестве аргумента (где у вас mc:String - сделать mc:Class) 2. Либо воспользоваться getDefinitionByName() UPD: Рекомендации в целом: 1. Типизируйте переменные. На это есть огромная масса причин. Код AS3:
3. Имя этого класса толком ничего не говорит о его назначении... Лучше было-бы что-нибудь вроде: ColoredButton или ColorizedButton 4. Несмотря на то, что компилятор сам сделает метод fadeInClick приватным, всё же следует ручками наделяет его атрибутом private. 5. В чём смысл вложенности метода fadeIn?? О боже.. у вас там всё вложено... |
ОфОРМЛЯЙТЕ КОД ТЕГАМИ!!
А если по делу - Код AS3:
То есть: Код AS3:
Добавлено через 47 секунд опоздал ((( |
Пробовал и mc:Class и mc:MovieClip еще до обращения сюда, проблема не исчезла.
Цитата:
Обязательно обращу своё внимание на изучение данной проблемы, после того как решу эту, ибо боюсь сейчас что либо трогать в коде. |
вот эта строка не понятна
Код AS3:
замените ее на Код AS3:
а вообще переменную ex создавать не нужно, а работать сразу напрямую: то есть заменить все ex на mc |
Цитата:
Код AS3:
|
в конструктор можно передавать только экземпляры класса, но никак ни сам класс.
тут убираем mc:String Код AS3:
Код AS3:
тогда нужно делать так Код AS3:
|
Если вы хотите задать строку в конструктор, и получить ссылку на класс, используйте getDefinitionByName() (как вам уже написал FlashRus)
Вместо Код AS3:
Код AS3:
|
Isfet ваши заметки понял. Единственное, думаю таким методом я получу внешний скрипт огромных размеров. Но всёравно сначала попробую так как вы посоветовали.
Ребята, спасибо что отозвались на мою проблему. |
зачем тут getDefinitionByName()??
Если мувики в библиотеке импортированы в AS, то все прекрасно работает и так: Код AS3:
|
| Часовой пояс GMT +4, время: 15:04. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.