Можно ли прикрепить обычную панель к всплывающей панели в flex? - PullRequest
0 голосов
/ 14 ноября 2009

Я новичок во Flex, сейчас я хочу создать панель закрепления на всплывающей панели в моем приложении Flex, как окно списка воспроизведения Winamp может пристыковаться к главному окну. но я не нашел ничего полезного при стыковке в flex, кто-нибудь может дать мне несколько советов?

Я проследил PopUpManager, но не нашел доступных интерфейсов или событий о перемещении всплывающего окна, думаю, его дизайн не должен быть таким плохим.

Кто-нибудь может дать мне несколько советов по стыковке или обработке события перемещения окна? Спасибо.

Ответы [ 2 ]

1 голос
/ 08 января 2010

Поскольку это происходит в поисках Googles, я чувствую, что мы должны добавить к этому больше информации.

В настоящее время существует несколько стыковочных сред для flex, таких как DockableFlex и FlexMDI . Существует также DockAreaFX - но это 250 долларов и, похоже, выходит за рамки того, что вы пытаетесь сделать. Все они имеют свои особенности, но я думаю, что ваш вопрос больше о том, как приклеить один контейнер рядом с другим, чтобы когда один двигался, другой двигался вместе с ним.

AFAIK. Это не то, что решено в рамках или компоненте, но должно быть достаточно легко добавить самостоятельно. Я думаю, что процесс пойдет примерно так:

  • Используйте PopupManager для создания рассматриваемого всплывающего окна
  • Внутри рассматриваемого всплывающего окна добавьте стандартную функциональность Drag и добавьте прослушиватель событий для OnDrag, чтобы выполнить проверку на привязку
  • Внутри прослушивателя событий OnDrag проверьте свою близость к другой панели, если вы закрываетесь, просто установите положение всплывающего окна по осям x и y, чтобы оно встало напротив него.
  • Добавьте прослушиватель событий во всплывающем окне для события Drag Complete. Внутри этого события OnDragComplete добавьте прослушиватель событий на панель, с которой вы хотите убедиться, что он перемещается в событие перетаскивания для этой панели - OnLockedPanelDrag.
  • Внутри этого слушателя событий просто обновите свои координаты x и y, основываясь на панели.

Чтобы отсоединить всплывающее окно, удалите прослушиватели событий для перетаскивания основных панелей, и это должно сделать это.

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

0 голосов
/ 14 ноября 2009

Если вы говорите об окнах браузера, вам придется использовать javascript. Flex (или Flash в этом отношении) имеет очень ограниченную способность общаться с браузером и не сможет выполнять такую ​​стыковку.

Вот отличное введение в общение между окнами в javascript: http://www.infimum.dk/HTML/JSwindows.html

...