Как удалить / закрыть несколько всплывающих окон в приложении Flex? - PullRequest
0 голосов
/ 15 марта 2012

если мы открываем много всплывающих окон во время просмотра (в Интернете) или в приложении AIR, как удалить их сразу?

Ответы [ 2 ]

2 голосов
/ 15 марта 2012

Не думаю, что на самом деле нужно удалить все всплывающие окна с помощью диспетчера всплывающих окон.Я думаю, вам нужно будет сохранить ссылку на каждый экземпляр в списке и вызвать PopUpManager.removePopUp для каждого.Честно говоря, хотя, вероятно, не очень хорошая идея иметь кучу всплывающих окон (с точки зрения пользовательского опыта), может быть, дело в этом, но я бы определенно потратил некоторое время, чтобы подумать, действительно ли это лучший вариант.

РЕДАКТИРОВАТЬ:

Вы также можете рассмотреть возможность расширения PopUpManager и поддержки внутренней коллекции, похоже, PopUpManager использует PopUpManagerImpl и, похоже, не раскрывает свойство impl, которое используется для делегирования фактической работы, так что вы, вероятно,нужно продлить оба.Но тогда вы могли бы использовать PopUpManagerImpl.mx_internal :: popupInfo, который представляет собой массив, в котором есть объекты, у которых есть свойство, называемое владельцем, которое выглядит так, как если бы вы хотели предоставить вызовы removePopUp.

1 голос
/ 15 марта 2012

Добавить все всплывающие окна в массиве, когда вы создаете его. И удалите все всплывающие окна

var popupCollection:ArrayCollection = new ArrayCollection;
var mypopup:IFlexDisplayObject;

PopUpManager.centerPopUp(mypopup=PopUpManager.createPopUp(this,popupWindow));
popupCollection.addItem(mypopup);

вы можете удалить все всплывающие окна, используя цикл

PopUpManager.removePopUp(popupCollection[index] as IFlexDisplayObject);
...