Как сохранить размер SWF-файлов на HTML-странице? - PullRequest
1 голос
/ 17 июля 2009

У меня есть много SWF-файлов, которые я включил в свою веб-страницу с помощью тега HTML-объекта. Он работает нормально, но я не могу сохранить размер моих SWF-файлов. У меня есть следующий код для SWF-файлов.

<object id="example_flashGame" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="600" height="400">
        <param name="movie" value="/video/swf/fun/funny-baby.swf" />
        <param name="allowScriptAccess" value="always" />
        <param name="loop" value="false" />
        <param name="menu" value="false" />
        <param name="quality" value="high" />
        <param name="wmode" value="window" />

        <embed name="example_flashGame" src="/video/swf/fun/funny-baby.swf" width="600" height="400" allowScriptAccess="always" loop="false" menu="false" quality="high"  wmode="window" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>
 </object>

В настоящее время размер (ширина и высота) SWF-файла фиксируется в теге объекта в приведенном выше коде. Я хочу, чтобы когда размер превышал определенный диапазон, тогда к файлу будет применен постоянный размер, файл будет отображаться в своем первоначальном размере.

Если существует файл, размер которого меньше указанного в теге объекта, то изображение в SWF-файле искажается и выглядит не очень хорошо.

Может кто-нибудь сказать мне, как я могу сделать размер SWF-файлов автоматически, если размер файла меньше 600x400, если размер превышает 600x400, тогда этот размер будет применяться, иначе файл должен отображаться в своем первоначальном размере.

Я видел, что некоторые игровые сайты (например, miniclip.com) делают одно и то же, они отображают оригинальный размер игр (маленьких или больших) на игровой странице, сохраняют ли они высоту и ширину файлов в таблицах БД. или что-то еще?

Есть ли способ сделать это в HTML или используя JQuery или javascript ??

1 Ответ

1 голос
/ 17 июля 2009

Нет способа просто определить размер сцены Flash из JS. Вам лучше вызвать функцию JS из Flash, чтобы установить размер сцены.

Итак, вам нужно будет добавить этот код во Flash-ролик (AS2):

import flash.external.ExternalInterface;
ExternalInterface.call("resizeFlash", Stage.width, Stage.height);

Тогда на странице HTML у вас будет функция JS, которая изменяет размер элемента Flash:

var max_flash_width = 800;
var max_flash_height = 600;

function resizeFlash(w, h)
{
    // force the w and h to be within limits set above
    w = Math.min(w, max_flash_width);
    h = Math.min(h, max_flash_height);
    // then resize the flash element using w and h
    var flash_elem = document.getElementById("example_flashGame");
    flash_elem.width = w;
    flash_elem.height = h;
    if (navigator.userAgent.toLowerCase().indexOf("safari") !=- 1) {
        var flash_elem = document.getElementById("example_flashGame");
        flash_elem.width = w;
        flash_elem.height = h;
    }
}
...