SWFObject 2.0 Динамическое масштабирование - PullRequest
1 голос
/ 08 февраля 2012

Я пытаюсь сделать что-то немного по-другому с моим Flash-внедрением на HTML-странице. Я добавил опцию в контекстное меню, вызываемое правой кнопкой мыши, чтобы переключаться между двумя режимами масштабирования: noscale и точная настройка . Это работает, когда я запускаю swf как отдельный файл, но не на HTML-странице. У кого-нибудь есть идеи, есть ли способ встроить SWF и динамически изменить режим масштабирования? Возможно встраивание со 100% шириной и высотой? Однако я попробовал это, и это нарушает код JavaScript для вставки.

<script type="text/javascript">
    var params = {};
    params.scale = "exactfit"
    var flashVars = {};
    swfobject.embedSWF("UserInterfaceStagingCR.swf", "myContent", "1440", "900", "9", null, flashVars, params);
</script>

1 Ответ

1 голос
/ 11 февраля 2012

См. Этот пост об изменении размера SWF на 100% ширина / высота .

Но если вы хотите переключиться с noScale на exactFit (и наоборот), вам, вероятно, нужно отредактировать узел param в вашем JavaScript.

У меня естьна самом деле никогда не пробовал (я не уверен, что это будет работать), но вот что я экспериментировал с:

function setScaleMode(mode){

    var paramNodes = document.getElementsByTagName("param");

    for(var i=0, len=paramNodes.length; i<len; i++){
        var node = paramNodes[i];
        if(node.name === "scale"){
            //switch to whatever scale mode you want to use.
            node.value = mode;
            //exit loop
            return;
        }
    }

}

var params = { scale: "exactfit" };
var flashVars = {};

swfobject.embedSWF("UserInterfaceStagingCR.swf", "myContent", "1440", "900", "9", false, flashVars, params);

(Конечно, этот код нужно будет изменить, если у вас есть несколько SWF-файловна странице.)

Затем ваш ActionScript вызывает JavaScript через ExternalInterface:

ExternalInterface.call("setScaleMode", "noscale");
...