Как получить Flash MovieClip для автоматического перехода на полный браузер в Chrome? - PullRequest
1 голос
/ 12 августа 2011

Я хочу, чтобы мой SWF-файл заполнил окно браузера, но он не работает в Chrome / FireFox, если пользователь не изменяет размер браузера вручную.

Я использую Adobe по умолчанию, сгенерированный html + swfobject.js, чтобы показать мой SWF. В html я заменил все высоты и ширины flashcontent на 100%.

К сожалению, в Chrome при первом открытии страницы Flash MovieClip не заполняет браузер, а вместо этого сохраняет его высоту и ширину по умолчанию. Если пользователь изменяет размер окна браузера, все работает нормально.

Есть ли уловка javascript или что-то, что я могу сделать, чтобы заставить Flash думать, что его размер изменен?

Спасибо!

Пояснение: Я думаю, мой первый вопрос был неясным. Я НИКОГДА не хочу, чтобы появлялись полосы прокрутки. Я хочу, чтобы мое приложение отлично масштабировалось и заполняло окно браузера - я хочу, чтобы оно стало действительно маленьким, если браузер маленький и действительно большим, если браузер большой. По сути, я хочу, чтобы мое приложение запускалось как обычное приложение Windows, например Visual Studio, но в браузере.

Ответы [ 2 ]

0 голосов
/ 12 августа 2011

В FireFox и Chrome swfobject не вызывает событие Event.RESIZE на стороне флэш-памяти при первом запуске SWF.Ниже приведен новый код для определения размера приложения в полнофункциональном браузере при запуске и при каждом изменении размера.По сути, это вызывает ложное изменение размера при первой загрузке приложения.

private function initializeStage():void
    {
        this.stage.align = StageAlign.TOP_LEFT;
        this.stage.scaleMode = StageScaleMode.NO_SCALE;
        this.stage.addEventListener(Event.RESIZE, stageResizeHandler);
        this.addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
    }

    private function addedToStageHandler(event:Event):void
    {
        this.removeEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
        stageResizeHandler(null);
    }

    private function stageResizeHandler(event:Event):void
    {   
        if (this._frameContainer != null) //_frame container is the sprite that contains my entire application.
        {
            this._frameContainer.width = this.stage.stageWidth;
            this._frameContainer.height = this.stage.stageHeight;
        }
    }
0 голосов
/ 12 августа 2011

проверить SWFFIT - он построен на основе SWFObject и великолепного полного скрипта браузера

...