Использование гибких компонентов в приложении papervision3d

Я занимаюсь проектированием средства просмотра 3D-панорам, используя papervision3d для библиотеки 3D. Я полностью кодирую ActionScript3 с помощью FlashDevelop. Сейчас я нахожусь в той точке, где мне нужно добавить простые компоненты (кнопку, раскрывающееся меню, панель инструментов и т. Д.). Я знаю, что с помощью mxml легко создавать пользовательские интерфейсы. Есть ли у кого-нибудь опыт создания пользовательских интерфейсов в mxml, а затем их использования в объекте papervision3d? По сути, я хочу поместить кнопку, указанную в mxml-файле, в середине моей панорамы, и я не знаю, как это сделать. Спасибо за любую помощь.


person Adam Richardson    schedule 03.02.2009    source источник
comment
на этом сайте есть действительно хороший просмотрщик: pan2view.com   -  person djangofan    schedule 17.07.2009


Ответы (1)


Я делаю нечто очень похожее: я занимаюсь разработкой средства просмотра трехмерных панорам с помощью Papervision3D, с добавлением элементов управления Flex в качестве интерфейса. (Вы можете проверить текущий статус средства просмотра на http://www.panocast.com)

То, что я сделал здесь, было прямо противоположным тому, что вы просили: я обернул представление Papervision3D внутри UIComponent и поместил его в файл MXML. Поместив его в Canvas, я смог расположить элементы управления поверх него. Вот как:

<mx:Canvas width="100%" height="100%">
    <!-- the main panoarama player object -->
    <pp:PanoViewer id="pv" width="100%" height="100%" />

    <!-- horizontal control bar -->
    <mx:HBox id="controls" bottom="10" left="10" right="10">
        <!-- rewind & play/pause buttons -->
        <mx:ButtonBar id="playbackButtons" buttonWidth="26">
            <mx:dataProvider>
                <mx:Array>
                    <mx:Object icon="@Embed(source='../../../../assets/rewind.png')" toolTip="Rewind video" name="rewind" />
                    <mx:Object icon="{playIcon}" toolTip="Play video (space)" name="play" />
                </mx:Array>
            </mx:dataProvider>
        </mx:ButtonBar>
    ... 

и Т. Д.

person David Hanak    schedule 04.02.2009
comment
Очень приятный телезритель! Так вы расширили UIComponent для объекта PanoViewer? Если это так, вы добавили свои mouseListeners (для панорамирования и наклона панорамного видео) на сцену или на что-то еще? - person Adam Richardson; 04.02.2009
comment
@ Адам: да, я расширил UIComponent. Я добавил большинство своих слушателей (включая слушателей мыши) к самому компоненту. Для обработки событий клавиатуры я заставил класс реализовать интерфейс IFocusManagerComponent и заполнил функции keyDownHandler () и keyUpHandler (). - person David Hanak; 04.02.2009