Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Ошибка #1034 Type Coercion failed (http://www.flasher.ru/forum/showthread.php?t=204640)

flaxe 07.11.2013 17:57

Ошибка #1034 Type Coercion failed
 
Очень часто вылезает странная рантайм ошибка:

[Fault] exception, information=TypeError: Error #1034: Type Coercion failed: cannot convert flash.display::MovieClip@108d05509 to CustomClass.

CustomClass содержится в swc и экспортирован как Sprite.
Перекомпиляция swc и повторная компиляция флэшки помогает избавится от этой ошибки на некоторое время, но она возвращается опять. Компилятор ASC2, AIR 3.4, на более ранних SDK такое не наблюдается.

Кто-нибудь встречался с таким? Решаемо?

uglan 07.11.2013 19:09

Конфликт типов. CustomClass судя по всему экстендится как Sprite, а создаваемый объект имеет изначально класс MovieClip. Попробуй поменять extend на MovieClip в CustomClass.

caseyryan 07.11.2013 19:15

Скорее всего баг компилятора. Но вполне возможна и ошибка в коде. Можно глянуть участок кода в котором вылетает эта ошибка?

flaxe 07.11.2013 19:42

Менять базовый класс CustomClass на MovieClip не помогает, пробовал первым делом.

Ошибка возникает когда передаю классы на растеризацию в DMT.
Думаю, что дело не в коде, потому что если просто перекомпилить swc, без изменений, то ошибка уходит.

Так же думаю, что дело в компиляторе, интересует как от этого избавиться)

caseyryan 07.11.2013 20:05

Проблема в коде.
Цитата:

Ошибка возникает когда передаю классы на растеризацию в DMT.
(Видимо предполагается, что все здесь присутствующие, безоговорочно знают что такое DMT, хотя лично я понятия не имею что это, ну да ладно) Надо тайпкастинг делать при передаче. Если в качестве параметра ожидается мувиклип, а ему суют какой-то CustomClass , то ничего удивительного, что компилятор может этого не понять.
Самый простой пример:
Код AS3:

 
var cc:CustomClass = new CustomClass();
 
rasterize(cc); // ошибка type coercion
rasterize(cc as MovieClip); // все ок
 
function rasterize(someShit:MovieClip):void {
 
}


gloomyBrain 07.11.2013 20:37

caseyryan, ошибка возникает в рантайме.

flaxe, а что такое DMT в данном случае?

caseyryan 07.11.2013 20:46

Цитата:

caseyryan, ошибка возникает в рантайме.
Я уже понял. И все-таки склоняюсь к тому, что там кое где-нет тайпкастинга

Inet_PC 07.11.2013 22:33

DMT видимо сокращение от Dynamically Mapping Textures.

flaxe 08.11.2013 09:20

Сорри, да DMT это Dynamically Mapping Textures, https://github.com/XTDStudios/DMT
Ошибка возникает в конструкторе CustomClass.
И опять же повторюсь, ошибка не постоянна при одном и том же коде.

caseyryan 08.11.2013 11:41

покажите конструктор CustomClass


Часовой пояс GMT +4, время: 09:23.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.