Как я могу изменить размер SWF во время выполнения, чтобы браузер создавал полосы прокрутки HTML? - PullRequest
5 голосов
/ 28 августа 2008

У меня есть SWF-файл с загрузкой текста в Sprite, размер которого изменяется в зависимости от введенного содержимого - хотя я бы хотел, чтобы для тех, которые длиннее страницы, браузер использовал собственные полосы прокрутки, а не обрабатывал Actionscript (очень похоже на http://www.nike.com/nikeskateboarding/v3/...)

Я посмотрел на вещи, которые сделал Найк, но просто не смог их осуществить. Есть идеи?

Ответы [ 5 ]

7 голосов
/ 29 августа 2008

Хитрость заключается в том, чтобы использовать простой JavaScript для изменения размера узла Flash DOM:

function resizeFlash( h ) {
    // "flash-node-id" is the ID of the embedded Flash movie
    document.getElementById("flash-node-id").style.height = h + "px";
}

Который вы звоните из Flash-фильма следующим образом:

ExternalInterface.call("resizeFlash", 400);

На самом деле вам не нужно иметь код JavaScript извне, вы можете сделать все это из Flash, если хотите:

ExternalInterface.call(
    "function( id, h ) { document.getElementById(id).style.height = h + 'px'; }",
    ExternalInterface.objectID,
    400
);

Анонимная функция должна просто передавать идентификатор и высоту в качестве параметров, а не объединять их в строку JavaScript.

Я думаю, что JavaScript довольно кроссплатформенный. Если вы хотите увидеть живой пример, посмотрите на этот сайт: talkoftheweather.com . Может показаться, что он ничего не делает, но он автоматически изменяет размер фильма Flash, чтобы вместить все новостные элементы (это происходит сразу после загрузки новостей, что делается так быстро, что вы этого не замечаете). Изменение размера заставляет браузер отображать вертикальную полосу прокрутки.

1 голос
/ 28 августа 2008

Я никогда не делал это таким образом, но я думаю, swffit мог бы справиться с этим.

0 голосов
/ 22 апреля 2010

SWFSize

Подробнее см. здесь .

Intuitsolutions.ca

0 голосов
/ 28 августа 2008

То, что я в основном использую, если для, это ограничить, насколько малы вы можете сделать «полноцветную» вспышку, и для этого она прекрасно работает. Удачного взлома!

(и не забудьте опубликовать свои выводы здесь, мне может понадобиться это слишком рано;))

0 голосов
/ 28 августа 2008

Я наполовину посмотрел на swffit, но высота (и ширина иногда, но в основном высота) была бы динамичной - swffit, давайте объявим maxHeight, но это число будет постоянно меняться ... возможно, я мог бы выяснить, как установить его динамически. Отличное место для меня, чтобы начать, хотя - спасибо!

...