Базовый класс AS3 является последней ошибкой, когда я не установил его таким образом - PullRequest
0 голосов
/ 06 января 2012

Я получаю сообщение об ошибке «Базовый класс окончательный» в проекте, в котором используется проигрыватель AIR для iOS. Проблема в том, что я не установил базовый класс как конечный. Также это происходит только тогда, когда я использую AIR в качестве проигрывателя.

Main - класс документов

package {
    import flash.display.*;
    import parentfolder.*;
    import parentfolder.childfolder.*;

    public class Main extends MovieClip {

        public function Main () {
            addChild (new SplashScreen ());
        }
    }
}

Экран - внутри родительской папки, которая находится в той же папке, что и класс документа

package parentfolder {
    import flash.display.*;

    public class Screen extends Sprite {
        public function Screen () {

        }
    }
}

SplashScreen - внутри родительской папки

package parentfolder.childfolder {
    import flash.display.*;
    import parentfolder.*;

    public class SplashScreen extends Screen {

    }
}

Итак ... в коде нет ни одного "финала", и проблема изолирована в проигрывателе AIR.

Ответы [ 2 ]

0 голосов
/ 06 января 2012

В AIR есть класс с именем Screen, который объявлен как final.При импорте вы использовали нотацию .*, поэтому в качестве базового класса для SplashScreen принимается flash.display.Screen, а не пользовательский parentfolder.Screen.

.проблема не возникает у других игроков.

Вы всегда должны использовать полностью определенный импорт (по одному для каждого класса), чтобы избежать конфликтов имен, подобных этому.

0 голосов
/ 06 января 2012

Ваша проблема с Экраном .

Вы пытаетесь выйти из него в этой строке

public class SplashScreen extends Screen

Экран объявлен как public final class Screen.

Таким образом, вы не можете наследовать от класса final .

Цитирование документов Adobe,

Указывает, что метод не может быть переопределен или класс не может быть продлен. Попытка переопределить метод или расширить класс как окончательный результат приводит к ошибке.

...