Flash Builder: «Доступ к неопределенному свойству Bindable» - PullRequest
3 голосов
/ 02 июня 2011

Я унаследовал приложение Adobe AIR и пытаюсь отладить его с помощью Flash Builder 4.5.В Flash Builder при просмотре одного из файлов MXML отображаются предупреждения для каждого использования тега [Bindable]:

[Bindable]
internal var selectedPreviousID:String=null;

[Bindable]
internal var recent:mx.collections.ArrayCollection;

Предупреждение:

Доступнеопределенного свойства Bindable

Существует импорт для, как мне кажется, соответствующей библиотеки:

import mx.binding.utils. *;

И нет пропущенных точек с запятой в строках, предшествующих каждому предупреждению, согласно предложению в этом сообщении в блоге .

Проект настроен для использования Flex SDK 3.6.

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

Режим разработки: ошибка во время компоновки компонента.Выберите «Дизайн»> «Обновить», чтобы обновить режим дизайна.

Что мне не хватает?Во время выполнения я вижу пустое окно - которое, как я полагаю, является результатом того, что привязки не срабатывают.Этот тег недоступен в Flex SDK 3.6?

1 Ответ

3 голосов
/ 03 июня 2011

Удаляя элементы из кода по одному, я обнаружил, что предупреждения как-то, по-видимому, были вызваны ранее объявленным элементом <mx:WebService>:

<mx:WebServiceid="service"
    wsdl="https://blah.com/blah?WSDL"
    operations='{{"Op1":this.method1()}}'/>
</mx:WebService>

В частности, если я удалю встроенный атрибут 'operations' - тогда предупреждения против Bindable исчезнут. Должно быть, возникла какая-то проблема с анализатором.

Дальнейшее тестирование показывает, что любые атрибуты, которые используют встроенный синтаксис атрибута, например ::

properties='{{"outerDocument":this}}'

Инициировать эту проблему синтаксического анализатора. Этот код был сгенерирован декомпилятором, поэтому, возможно, он недействителен.

Существует альтернативный синтаксис для указания операций как узлов XML вместо атрибута:

<mx:WebServiceid="service"
    wsdl="https://blah.com/blah?WSDL"/>
    <mx:operation name="Op1" result="this.method1(event)">
    <mx:request>
        <token>{credentials.token}</token>
        </mx:request>
    </mx:operation>
</mx:WebService>
...