Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   подгонка изображения под размеры окна с сохранением пропорций. (http://www.flasher.ru/forum/showthread.php?t=214522)

ZackMercury 08.09.2017 22:01

Visors, проблема не во флеше, а в том, что вам всё, что вам нужно знать для того, чтобы выполнить задачу сказали ещё в самом начале темы. Остальное можно легко найти через поисковик. Вот и вся проблема. Вам даже код за вас написали, а вы даже не можете им воспользоваться.

Книжки читать, я так понимаю, вам советовать бесполезно?

Visors 08.09.2017 22:15

undefined, вы же сами сказали - что для того, чтобы заставить флэш подгонять размеры любой фотографии под окно - какими бы они не были....
Нужно:
1-Знать размеры этой фотографии.
2-Знать размер окна.

Окно у меня - самое обыкновенное. Это окно открытого файла swf, в котором выполняется код загрузки изображения. Это окно - выглядит как окно Windows - его можно растянуть - по высоте и по ширине - как любое другое окно в котором воспроизводится файл swf.
Вообще мне несколько странно вам объяснять - что такое окно Windows.
Я думаю вы все-таки знаете что это такое.

Меня интересует вопрос - как автоматически подогнать размер изображения под размер окна.
Я открываю swf файл, тут же загружается jpg - но не как в моем примере, а заполняя окно - по ширине или по высоте с сохранением пропорций, или даже без пропорций - растягиваясь под размер окна.
А окно может быть быть любое - его можно растягивать - вверх-вниз и изображение на этом окне так же будет менять свой размер.

Добавлено через 19 минут
ZackMercury, я имел ввиду не вписывание вручную - размеров фотографии в код - всякий раз при ее смене.
А автоматическое выравнивании фотографии - по размеру окна, размер которого может постоянно меняться.

undefined 08.09.2017 23:05

Правильно говорить "на всю рабочую область флэшки".Под окном обычно подразумевается нечто,нарисованное внутри этой области.Размеры рабочей области можно получить из свойств stage.stageWidth/stage.stageHeight.Как сделать чтоб оно автоматически подстраивалось при растяжении/сжатии флэшки читаем тут

Visors 08.09.2017 23:19

undefined, ясно.
Буду читать.
Спасибо за ответы.

undefined 08.09.2017 23:43

Код AS3:

import flash.display.*;
import flash.events.*;
import flash.net.*;
 
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
loader.load(new URLRequest("1.jpg"));
addChild(loader);
stage.addEventListener(Event.RESIZE, update);
function onComplete(e:Event):void
{
        e.target.removeEventListener(Event.COMPLETE, onComplete);
        (e.target.content as Bitmap).smoothing = true;
        update();
}
function update(e:Event = null):void {
        loader.scaleX = loader.scaleY = 1;
        var scale:Number=Math.min(stage.stageWidth /loader.width,stage.stageHeight/loader.height);
        loader.scaleX = loader.scaleY = scale;
        loader.x = stage.stageWidth * 0.5 - loader.width * 0.5;
        loader.y = stage.stageHeight* 0.5 - loader.height * 0.5;
}

Писал не в flash ide,поэтому могут быть ошибки, но вроде все верно.

Visors 09.09.2017 14:05

undefined, вот прямо - именно то, что нужно.
Огромное спасибо.


Часовой пояс GMT +4, время: 20:26.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.