наследование mxml в Flex. как работы “instanceof” и?

Ранее я использовал следующую структуру:

Canvas -> Screen1
Canvas -> Screen2

Когда я чувствую потребность в общей логике в моем приложении, я делаю затем:

Canvas -> Screen
Screen -> Screen1
Screen -> Screen2

Таким образом, когда я пытаюсь применить его в своем коде

if(child is Screen){
    return child.localToGlobal(new Point()).x;
}

Это не работы! То, когда я вижу в отладчике, ребенок имеют тип "Screen2", но "дочерний элемент является Экраном", возвращает false мне (и "дочерний Экран instanceof" также). Когда я применяю ключ компилятора: "-keep-generated-actionscript" я вижу Screen2-generated.as и это, содержит

public class Screen3 extends screens.Screen

Заранее спасибо Извините за мой ужасный английский язык =)

1
задан semen 5 July 2010 в 10:34
поделиться

1 ответ

Думаю, проблема в этом конкретном имени - уже существует класс под названием Screen (в flash.display - http://livedocs.adobe.com/flex/3/langref/flash/display/Screen .html ), и Flex проверяет, является ли это экземпляром исходного экрана.

Вы можете попробовать две вещи:

1) Переименуйте свой класс Screen в CustomScreen и попробуйте еще раз.

2) Проверьте, является ли дочерний элемент экземпляром вашего класса, указав его полный путь, например. if (child is screens.Screen)

2
ответ дан 2 September 2019 в 23:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: