Ранее я использовал следующую структуру:
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
Заранее спасибо Извините за мой ужасный английский язык =)
Думаю, проблема в этом конкретном имени - уже существует класс под названием Screen (в flash.display - http://livedocs.adobe.com/flex/3/langref/flash/display/Screen .html ), и Flex проверяет, является ли это экземпляром исходного экрана.
Вы можете попробовать две вещи:
1) Переименуйте свой класс Screen в CustomScreen и попробуйте еще раз.
2) Проверьте, является ли дочерний элемент экземпляром вашего класса, указав его полный путь, например. if (child is screens.Screen)