2013-11-22 8 views
1

Когда вы открываете SWF в своем браузере, он обычно растягивается, чтобы соответствовать всему экрану. Я хочу предотвратить это. То есть, когда SWF открывается, он просто появится в браузере в правильном размере, либо в левом верхнем углу, либо в центре.Предотвращение растягивания SWF при открытии в браузере

Я понимаю, что это можно сделать на странице HTML, а также при использовании автономного проигрывателя он откроется в правильном размере. Однако я хочу развернуть это как SWF самостоятельно, и, скорее всего, пользователь откроет его в своем браузере.

Итак, есть ли способ предотвратить такое поведение? Я использую Haxe, но код AS3 также будет полезен. Я попытался установить stage.scaleMode на StageScaleMode.NO_SCALE, но это не поможет.

+0

Странно, stage.scaleMode должен сделать трюк. Вы загружаете другой swf в свой основной swf или что-то в этом роде? –

+0

@Binou: Нет. Это странно. Это может быть потому, что я использую Haxe и/или движок HaxePunk, но насколько я знаю, я обращаюсь к базовому этапу. – puggsoy

+0

Вы устанавливаете его до или после инициализации вашего двигателя? может, двигатель что-то сделал? –

ответ

0

Так что, видимо, это было что-то с HaxePunk, используемым мной двигателем. Мне удалось это исправить, поставив это в главном классе (который простирается Engine):

HXP.screen.scaleX = HXP.screen.scaleY = 1; 

В большинстве других случаев, хотя, ответ Лукаш должно быть достаточно.

2

Используйте Align и ScaleMode

stage.align = StageAlign.TOP_LEFT; 
stage.scaleMode = StageScaleMode.NO_SCALE; 

также в HTML обертке вы можете установить:

<script src="js/swfobject.js"></script> 
<script> 
    var flashvars = { 
    }; 
    var params = { 
     menu: "false", 
     scale: "noScale", 
     allowFullscreen: "true", 
     allowScriptAccess: "always", 
     bgcolor: "", 
     wmode: "direct" // can cause issues with FP settings & webcam 
    }; 
    var attributes = { 
     id:"layoutmanager" 
    }; 
    swfobject.embedSWF(
     "layoutmanager.swf", 
     "altContent", "100%", "100%", "10.0.0", 
     "expressInstall.swf", 
     flashvars, params, attributes); 
</script> 
<style> 
    html, body { height:100%; overflow:hidden; } 
    body { margin:0; } 
</style> 

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

+0

Спасибо! Несмотря на то, что это не помогает моей конкретной проблеме, она действительно работает в большинстве случаев. – puggsoy