AS3: ошибка № 1034: сбой приведения типа: невозможно преобразовать в flash.display.DisplayObject - PullRequest
1 голос
/ 26 января 2012

возникли проблемы с hitTestObject, и теперь Flash сообщает мне, что он не может преобразовать мой корабль в экранный объект. Моя проблема в том, что класс корабля расширяет Sprite, поэтому я не знаю, что происходит:

Ошибка компиляции показывает это:

TypeError: Error #1034: Type Coercion failed: cannot convert Ship$ to flash.display.DisplayObject.
at Control/controlgame()

Control / controlgame () это:

function controlgame(e:Event) {
        for (var i = 0; i < wprojectiles.length; i ++) {
            if (wprojectiles[i].x < -200 || wprojectiles[i].x > 750 || wprojectiles[i].y < -200 || wprojectiles[i].y > 600) {
                parent.removeChild(wprojectiles[i]);
                wprojectiles.splice(i,1);
            }
            if (wprojectiles[i].hitTestObject(Ship)) {
                parent.removeChild(wprojectiles[i]);
                wprojectiles.splice(i,1);
            }
        }
    }

Используя отладчик, я получаю эту ошибку:

TypeError: Error #1034: Type Coercion failed: cannot convert Ship$ to flash.display.DisplayObject.
at Control/controlgame()[C:\Users\Harry\Desktop\Flash Games\Games\Dodge\Control.as:29]

Строка 29, показанная в приведенном выше фрагменте, выглядит следующим образом:

if (wprojectiles[i].hitTestObject(Ship)) {

Вырывая мои волосы здесь, перепробовал все, что мог придумать, и каждый раз получаю эту ошибку, независимо от того, что я делаю!Помощь будет очень признательна!

Заранее спасибо.

e: если она имеет отношение к делу, это мой файл класса документа

1 Ответ

1 голос
/ 26 января 2012

Где вы объявили Ship?Похоже, вы используете Class для своего теста вместо экземпляра ... у вас есть что-то вроде Ship = new ShipClass() где-то?

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