@Porcelain

Различные результаты работы виртуальной машины с/без приведения типов объектов (AIR 4.0)

Дано: Flash Builder 4.7, AIR 4.0
var customLayout:ILayout;
customLayout = new HorizontalLayout();
(customLayout as HorizontalLayout).gap = 222;
customLayout.gap = 222;

Вопрос:
Каким образом получилось, что строка 3 выполнилась, а на строке 4 вылезла ошибка:
ReferenceError: Error #1056: Cannot create property gap on feathers.layout.HorizontalLayout.

Дополнительная информация:
Класс HorizontalLayout и интерфейс ILayout являются частью фреймворка Feathers.
HorizontalLayout: код, апи
ILayout: код, апи
gap является геттером/сеттером класса HorizontalLayout; в интерфейс ILayout не входит.
Переменная customLayout создалась нормально, содержит экземпляр класса HorizontalLayout:
6d27804067.png
Ошибки компиляции не возникло (а по-моему должна бы), скриншот с рабочего дебаг-режима Flash Builder'а.
  • Вопрос задан
  • 2334 просмотра
Пригласить эксперта
Ответы на вопрос 1
@EjIlay
Можно попробовать дизасемблировать свиф-файл и посмотреть что там на самом деле получается после компиляции. или глянуть байт-код, если квалификации хватает. В любом случае, очень похоже на глюк компилятора.
И давно перешел на использование IntelliJ IDEA и отдельно скачанной сдк, чтобы уйти от подобных проблем, т.к. в "одном_огромном_проекте" такие чудеса во флешбилдере стали лезть через строку.
Подозреваю что эти проблемы связаны с настройками запуска ява-машины.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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