У меня есть воздушное приложение с несколькими окнами. Когда я перехожу к httpservice, курсор занятости появляется сзади текущего окна (он появляется в исходном окне). Может ли кто-нибудь помочь мне расположить занятый курсор перед всеми окнами.

0
isabelle 23 Мар 2011 в 09:52
Привет, Изабель. Как и где вы реализовали запрос httpservice? MXML? В ВИДЕ? Если AS, как вы устанавливаете busyCursor? Какой CursorManager вы получаете?
 – 
Kodiak
23 Мар 2011 в 12:16

1 ответ

Кадьяк,

документация по HTTPService описывает параметр showBusyCursor, который, как я полагаю, использует Изабель. При использовании MXML достаточно добавить параметр showBusyCursor="true". При использовании AS вы должны установить свойство myHttpServiceObject.showBusyCursor=true

Изабель,

Я отследил вызов AS .showBusyCursor=true. Я ставлю точки останова на вызовы функции get showBusyCursor() в HTTPService и AbstractOperation. AbstractOperation.invoke вызывает CursorManager.setBusyCursor(), что досадно.

В документации CursorManager есть примечание, что говорит

В AIR каждый экземпляр mx.core.Window использует собственный экземпляр класса CursorManager. В приложении AIR вместо прямой ссылки на статические методы и свойства класса CursorManager используйте свойство Window.cursorManager для ссылки на экземпляр CursorManager для экземпляра Window.

Я прочитал это как означающее, что нет действительно глобального места для установки курсора - это делается для каждого окна.

Единственное решение, которое приходит на ум, — слушать события вызова и результата от HTTPService и вручную устанавливать курсор в каждом окне, используя this.cursorManager.setBusyCursor() и this.cursorManager.removeBusyCursor().

Я надеюсь, что кто-то еще может добавить к этому - в моем приложении у меня полдюжины различных типов окон и множество вызовов HTTPService. Это может привести к ужасно беспорядочному коду.

1
Community 20 Июн 2020 в 12:12