Форум Flasher.ru

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

iliacmd 15.02.2012 16:40

Error 1034: Ошибка типа Coercion
 
Всем привет! Помогите разобраться.

С данной траблой сталкивался не один раз, но в данный момент решил разобраться с ней раз и на всегда.

Проблема такая:

Есть swf1 с типом MovieClip1, внутри это клипа есть клип clip_mc с типом MovieClipBar. Есть также swf2 с типом MovieClip2. Я загружаю swf1 в swf2, и пытаюсь внутри swf2 создать еще один объект с типом MovieClip1 и получаю такую ошибку

Код:

TypeError: Error #1034: Ошибка типа Coercion: невозможно преобразовать flash.display::MovieClip@32770c81 в MovieClipBar
В чем может быть проблема?

Srednas 15.02.2012 16:49

Цитата:

Сообщение от iliacmd (Сообщение 1063086)
В чем может быть проблема?

Была такая тема. А в этой вы досадуете.. Да похоже старая проблема.

Может в справке найдете чего, что поможет.

iliacmd 15.02.2012 17:51

справка как-то не очень помогает :(

мне непонятно почему при создании нового экземпляра загруженного клипа, все клипы внутри него имеющие вполне определённый тип создаются как MovieClip'ы?

NikolyA 15.02.2012 18:10

давай код свой сюда выкладывай

MikroAcse 15.02.2012 18:18

Ты хочешь преобразовать MovieClip в MovieClipBar, попробуй делать так:
Код AS3:

YourMovieClipBar as MovieClip


dimarik 15.02.2012 18:20

Вероятно, в родительском аппдомене ничего не знают о классе MovieClipBar. Попробуйте загрузить swf1 в текущий аппдомен swf2.
Либо (в контексте swf2)
Код AS3:

const o:Object = new swf1.loaderInfo.applicationDomain.getDefinition("MovieClip1")();

Добавлено через 3 минуты
Цитата:

Сообщение от MikroAcse (Сообщение 1063110)
Ты хочешь преобразовать MovieClip в MovieClipBar, попробуй делать так:
Код AS3:

YourMovieClipBar as MovieClip


Откуда вы, юноша? Это не преобразование, а приведение. И попробовать привести к MovieClipBar можно с точностью до наоборот.

Код AS3:

const foo:MovieClipBar = bar as MovieClipBar;
if (!foo)
    // cast failed


MikroAcse 15.02.2012 18:25

Цитата:

Это не преобразование, а приведение.
Ой, перепутал. С кем не бывает?

iliacmd 15.02.2012 20:24

Вложений: 1
закатал простой пример

iliacmd 15.02.2012 20:29

нет, мне не нужно приводить к MovieClipBar, клип с данным классом находится внутри класса swf1, я создаю экземпляр swf1, вот только в самом клипе swf1 не создается объект с типом MovieClipBar, а почему-то создается обычный MovieClip

dimarik 16.02.2012 10:13

Прости, дружище! CS5.5 у меня нет.


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

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