AS3 Приведение одного типа к другому - PullRequest
12 голосов
/ 12 марта 2012

У меня есть базовый класс с именем Room и подкласс с именем Attic, а другой - с именем Basement.

. У меня есть класс контроллера, который имеет атрибут с именем CurrentLocation типа Room.Идея в том, что я хочу иметь возможность поместить Attic или Basement в это свойство и вернуть его обратно, а затем привести его к какому бы типу.

Так что если на контроллере контент имеет типAttic, я пытаюсь выяснить, как явно разыграть его.Я думал, что знаю, но это не работает ... Вот что я подумал, заимствуя из Java:

var myAttic:Attic = (Attic) Controller.CurrentLocation;

Это дает мне синтаксическую ошибку:

1086:Синтаксическая ошибка: ожидание точки с запятой перед экземпляром.

Так как вы неявно приводите?Или ты можешь?Я могу поклясться, что делал это раньше как as3.

1 Ответ

25 голосов
/ 12 марта 2012

Вот ваши варианты приведения в ActionScript 3:

  1. Использование as.

    var myAttic:Attic = Controller.CurrentLocation as Attic; // Assignment.
    (Controller.CurrentLocation as Attic).propertyOrMethod(); // In-line use.
    

    Это присвоит null myAttic, если произойдет сбой.

  2. Завернуть в Type().

    var myAttic:Attic = Attic(Controller.CurrentLocation); // Assignment.
    Attic(Controller.CurrentLocation).propertyOrMethod(); // In-line use.
    

    Выдает TypeError, если произойдет сбой.

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