Flash AS3 - объекты одного базового класса в библиотеке - сбой приведения типов - PullRequest
2 голосов
/ 14 декабря 2009

Это часто случается со мной, и я еще не нашел хорошего решения. Скажем, у вас есть два класса, Tree (com.company.Tree) и Fruit (com.company.Fruit). На сцене во Flash у Дерева есть экземпляр Fruit (class = fruit1, base class = com.company.Fruit), и его именем экземпляра является fruit. Все в порядке, пока вы не продублируете фрагменты ролика с деревом и фруктами, чтобы создать второе дерево, которое имеет РАЗЛИЧНЫЙ экземпляр Fruit (class = fruit2, base class = com.company.Fruit), но имя экземпляра которого во втором дереве равно также фрукты. Это необходимо, потому что код класса Tree ссылается на «fruit» (например, fruit.x + = 20).

Я получаю это:

 Warning: All instances named 'fruit' will be automatically declared as fruit1 in symbols that use fruit as their base class. In symbols that are linked to user-defined base classes, instances with the same name must be of the same type.

И, конечно, это:

TypeError: Error #1034: Type Coercion failed: cannot convert fruit2@4be85871 to fruit1.

Ответы [ 3 ]

3 голосов
/ 07 февраля 2010

Используете ли вы опцию компиляции для "Автоматически объявлять экземпляры сцены"? В этом случае вам, возможно, придется отключить это и добавить:

public var fruit:Fruit;

к вашему классу дерева. Это позволит назначить «фрукты» вашему мувиклипу на сцене с именем экземпляра «фрукты» и избежать конфликта. Проверьте этот пост для более.

1 голос
/ 17 сентября 2011

ответ typeoneerror работает. Flash установит тип fruit2 равным fruit1, что по сути то же самое, что фактически установить для его Base значение Fruit.

Довольно раздражающее предупреждение, но все работает отлично

0 голосов
/ 14 октября 2013

http://jongrant.wordpress.com/2012/01/10/as3-warning-all-instances-named-will-be-automatically-declared-as-in-symbols-that-use-as-their-base-class-in-symbols-that-are-linked-to-user-defined-base-classes-instances-with-the-same-name/

Это решение идеально подходит для меня, просто снимите флажок и все в порядке.

Файл-> Параметры публикации-> Flash-> Настройки ... Вы автоматически объявляете экземпляры сцены

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