![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 14
|
Искал честно, но не нашел.
Нужно сделать, фон как тут: http://www.plus-production.it/ фотография при изменение размеров окна меняет размер пропорционально. Я использую вот такой код, но получается резина, подскажите как правильно сделать! Спасибо target.easeSize(stageWidth * target._width, stageHeight * target._height); |
|
|||||
|
Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
|
Я вот так делаю:
private function placeBackground(scaledObject:DisplayObject):void { scaledObject.scaleX = scaledObject.scaleY = 1; var backgroundBitmapProportion:Number = scaledObject.width / scaledObject.height; var stageProportion:Number = stage.stageWidth / stage.stageHeight; var scale:Number; if (backgroundBitmapProportion > stageProportion){ scale = stage.stageHeight / scaledObject.height; } else { scale = stage.stageWidth / scaledObject.width; } scaledObject.scaleX = scaledObject.scaleY = scale; scaledObject.x = (stage.stageWidth - scaledObject.width) / 2; scaledObject.y = (stage.stageHeight - scaledObject.height) / 2; } |
|
|||||
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; public class Main extends Sprite { [Embed(source = 'image.jpg')] private var imgClass:Class; private var img:Sprite; private var imgHeight :int; private var imgWidth :int; public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stage.addEventListener(Event.RESIZE, RESIZE); img = new Sprite(); img.addChild(new imgClass()); addChild(img); imgHeight = img.height; imgWidth = img.width; RESIZE(); } private function RESIZE(e:Event = null):void { var w:Number = stage.stageWidth; var h:Number = stage.stageHeight; var dx:Number = w / imgWidth; var dy:Number = h / imgHeight; var cf:Number = (dx > dy)?dx:dy; img.scaleX = cf; img.scaleY = cf; img.x = (w - img.width) * .5; img.y = (h - img.height) * .5; } } } Добавлено через 7 минут На сайте, кстати, привязан бэк только к ширине стейджа. Ну это если что.
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь! |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:53. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|