2011-02-06 1 views
0

В моем приложении AIR (с мате-Framework) я сделал follwing вещи:AIR Application = ложь не обрабатывается (Busyindicator)

  1. нажмите на кнопку
  2. вызова метода в моей модели "onApplicationBusy"
  3. применить некоторый фильтр в arraycollections.

В моей onApplicationBusy есть этот код:

FlexGlobals.topLevelApplication.enabled = false; 
FlexGlobals.topLevelApplication. 

Я проследить каждый шаг и все методы вызываются в правильном порядке. Но мое приложение никогда не отключается.

Почему. Есть ли способ для этой цели.

Я пытаюсь выполнить InvalidateDisplayList или ValidateNow или callLater. Но все попытки не сработают. Наверное, я пробую это не в том месте?

Я предполагаю, что мое приложение настолько занято, применяя фильтры (4 значения для 10.000 строк), что свойство disabled невозможно обработать.

Если я вызываю метод без применения фильтров, все работает нормально. Если я вызываю только свойство disbaled, но никогда не включаю приложение, приложение будет показано как отключенное после применения фильтров. для меня слишком поздно.

То, что я хочу, - это четкое поведение, когда приложение занято, а когда нет (готово к нажатию на кнопки и все это).

Если вы можете мне помочь или знаете способ, как я могу показано Занято приложение, пожалуйста, помогите мне Спасибо Frank

ответ

0

Все правые, Метод SetTimeout решить мою проблему. Я предполагаю, что я должен ждать следующего обновления экрана.

Почему callLater не работает, и когда мне нужно реализовать эти функции, потому что у меня слишком мало ресурсов, пока работает функция filterFunction?

Frank

-1

Я использую FlexGlobals.topLevelApplication.stage.mouseChildren = ложь | правда;

Стоит отметить, что я сначала попытался установить флаг mouseEnabled, но обнаружил, что различные визуальные элементы вообще не будут обновляться, а mouseEnabled = false.