Как определить, когда метод или свойство было добавлено в класс Flash Player или Flex SDK? - PullRequest
2 голосов
/ 11 сентября 2009

Недавно я нашел метод ( ByteArray.clear () ), который, как жалуется FlexBuilder, возможно, не определен; однако этот метод фактически задокументирован во Flex LiveDocs. Должно быть, он был добавлен в более позднюю версию SDK, чем я установил. Я не спрашиваю об этом конкретном методе, но я привожу его в качестве примера проблемы с документацией, которую я пытаюсь решить. Мои вопросы:

  1. Как определить, в какой версии SDK или проигрывателя Flash Player был добавлен метод или свойство?
  2. Как узнать, какие версии SDK поддерживаются в каких версиях Flash Player?

Я хочу иметь возможность определить из документации, вместо ошибок компилятора или времени выполнения, какие версии SDK и Flash Player необходимы для поддержки вновь добавленных методов.

В Java я ищу тег @since javadoc, когда мне нужно это знать, но я не могу найти эквивалентную функцию в документах Flex.

Ответы [ 3 ]

1 голос
/ 11 сентября 2009

Часто в документации говорится, что данное свойство доступно в версии FlashPlayer xyz. К сожалению, даже если вы просматриваете документацию, и документация может ЗАЯВИТЬ , что функция существует случай ByteArray, безусловно, существует существует), иногда компилятор просто глючит и выбрасывает шипение.

Лучше всего убедиться, что у вас установлена ​​самая последняя версия Flex dev. kit и убедитесь, что вы публикуете самый последний основной выпуск (Flash> = 10). Чтобы это сделать, положитесь на документацию здесь: http://livedocs.adobe.com/flex/3/langref/index.html.

После этого это метод «скрестите пальцы и молитесь». К сожалению.

0 голосов
/ 26 января 2010

На основании того, что Джеймс предложил вам использовать этот код:

        try
        {
            // Use the clear method if the flash player supports it (10+)
            this.swf['clear']();
        }
        catch (e:Error)
        {
            // Must be flash player 9 or lower so free the variable
            this.swf = new ByteArray();
        }

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

0 голосов
/ 11 сентября 2009

ByteArray - это класс Flash Player, а не класс Flex. API-интерфейсы Flash Player реализованы во время выполнения, поэтому они привязаны к конкретным версиям Flash Player. Обычно ASDoc указывает, когда был добавлен API. Но в этом случае кажется, что это не так. Вот несколько вещей, которые стоит попробовать:

  1. Обойти ошибку компилятора (может привести к ошибке времени выполнения, если вы используете версию FP, в которой нет метода clear): byteArray['clear']()
  2. Измените версию FP, используемую во Flex, на 10, чтобы увидеть, возможно, она была добавлена ​​в FP 10 и по какой-то причине не указана в ASDoc.
  3. Flex использует файл playerglobal.swc в качестве заглушек для API FP. Вполне возможно, что SWC не содержит того, что должен. В этом случае вам следует сообщить об ошибке .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...