Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Где взять исходники flash.display.Stage.as (http://www.flasher.ru/forum/showthread.php?t=211094)

SenCheR 24.06.2015 14:15

Где взять исходники flash.display.Stage.as
 
Есть проблема со Stage.as, хочу посмотреть исходник. Слышал Flex SDK стал опенсорсным Apache Flex - но в репозитории не нашел. Кто-то знает где найти?

Tails 24.06.2015 14:31

Озвучьте проблему.

SenCheR 24.06.2015 15:20

Проблема в том, что в браузере флеш не может перейти в фулскрин без клика пользователя. Я пользуюсь старлингом и там нет кликов.
Скормить new MouseEvent.MOUSE_DOWN не катит.

Выдает ошибку - описание без старлинга тут: http://stackoverflow.com/questions/9...gedisplaystate

Код AS3:

private function onFullScreenClicked():void
                {
                        Starling.current.nativeStage.addEventListener(MouseEvent.MOUSE_DOWN, fullscreenButton_MouseClickHandler);
                        var event:MouseEvent = new MouseEvent(MouseEvent.MOUSE_DOWN, true, false, 1242, 127, null, false, false, false, true);
                        Starling.current.nativeStage.dispatchEvent(event);
                }
 
                private function fullscreenButton_MouseClickHandler(event:MouseEvent):void {
                        SoundManager.playSound("selectScreenButtonSound");
                        if (!_fullscreenMode) {
                                _fullscreenMode = true;
                                Starling.current.nativeStage.displayState = StageDisplayState.FULL_SCREEN;
                        } else {
                                _fullscreenMode = false;
                                Starling.current.nativeStage.displayState = StageDisplayState.NORMAL;
                        }
                        Starling.current.nativeStage.removeEventListener(MouseEvent.MOUSE_DOWN, fullscreenButton_MouseClickHandler);
                }

Этот код работает, но со второго клика, т.к. до onFullScreenClicked я не слушаю флешовый MouseEvent.MOUSE_DOWN. А он в свою очередь приходит раньше старлинг TOUCH ивента.

В идеале мне надо создать new MouseEvent.MOUSE_DOWN, чтобы флеш думал, что он от юзера.
Иначе сделать клик с 1 раза, но Starling.current.nativeStage занимает весь экран поверх старлинга.

Tails 24.06.2015 16:44

Определение Stage зашито в флеш плеер, вы никак не сможете его переопределить.

Чтобы перейти в фул скрин не обязательно же нужен старлинг, просто в Main классе добавьте слушатель клика по Stage и входите в фул скрин.
Старлинг может инициализироваться после этого, или обновиться по событию resize.

SenCheR 24.06.2015 18:29

Я и не хочу переопределять. Мне интересно узнать как он отличает юзер клик от new клик.

А по поводу "слушатель клика по Stage" - мне же не надо по любому нажатию в фулскрин уходить, а только если юзер кликнет по кнопке.

caseyryan 24.06.2015 18:50

В старлинге есть свойство Starling.current.nativeOverlay
это обычный флешевый спрайт, который находится поверх слоя старлинга. Вот в него можно добавить кнопку, по которой будет производиться щелчок.
Исходники Stage посмотреть нельзя нигде. Это один из классов, написанных на С++, который зашит в сам плеер, а он пока еще не опен сорс.

Tails 24.06.2015 18:54

Цитата:

Сообщение от SenCheR (Сообщение 1184028)
В идеале мне надо создать new MouseEvent.MOUSE_DOWN, чтобы флеш думал, что он от юзера.

Это не возможно.

Попробуйте просто в старлинговом хендлере клика вызвать:
Код AS3:

Starling.current.nativeStage.displayState = StageDisplayState.FULL_SCREEN;

Но клик должен быть настоящим, никаких
Цитата:

new MouseEvent.MOUSE_DOWN

dimarik 25.06.2015 23:29

Объект события должнен быть создан внешним по отношению к плееру событием интерактивности. Это достаточно хорошо отслеживается по call stack. Ваш new MouseEvent в нем явно будет выглядеть белой вороной.


Часовой пояс GMT +4, время: 13:59.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.