Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Свойства загруженного в прелоадер объекта (http://www.flasher.ru/forum/showthread.php?t=202232)

StasHappy 04.07.2013 22:29

Цитата:

если вы зададите ldr.x= 0 и ldr.y =0 , то увидите смещение
относительно верхнего левого угла.Об этом и писал maxkar
Смещение происходит и так относительно левого верхнего угла. А в следующем коде, корректирую положение, для центровки:
Код AS3:

        ldr.x = (stage.stageWidth - movikWidth)/2;
        ldr.y = (stage.stageHeight - movikHeight)/2;


StasHappy 04.07.2013 22:33

Вложений: 2
Сделал скриншоты, для наглядности. Здесь видно, какие значения ширины и высоты, возвращают нам те или иные функции.

maxkar 04.07.2013 23:03

Ну cleptoman уже сказал, что делать. Вычисляете scale (именно scale!, не ширину/высоту) по loader.contentLoaderInfo и требуемому размеру. Затем устанавливаете это scale в loader или loader.content (не ширину/высоту, scale!). И затем уже вычисляете положение флешки. Причем вычисляете не исходя из чьей-то ширины, а вручную вычисляя эффективные значения размера сцены, используя выбранный scale и loader.contentLoaderInfo.

StasHappy 04.07.2013 23:22

maxkar. Окей, спасибо. Попробую сделать.

Добавлено через 3 часа 27 минут
Весь выходной сегодня на смарку.(((((
А как правильно масштабировать?
Я написал так:
Код AS3:

        ldr.scaleX = stage.stageWidth/movikWidth;
        ldr.scaleY = stage.stageHeight/movikHeight;
        ldr.x = 0;
        ldr.y = 0;

Flash'ка вроде как, расположилась посередине прелоадера, но зато теперь немного растянулась. То есть пропорции нарушились..

Добавлено через 20 часов 11 минут
Проблему с масштабированием решил. Всем спасибо. Пример на следующем коде:
Код AS3:

if(movikWidth >= movikHeight) {
        if(movikWidth/movikHeight >= stage.stageWidth/stage.stageHeight) {
                delitel = stage.stageHeight/movikHeight;
                ldr.scaleX = delitel;
                ldr.scaleY = delitel;
 
                ldr.x = (stage.stageWidth - movikWidth*delitel)/2;
                ldr.y = 0;
        } else {
                delitel = stage.stageWidth/movikWidth;
                ldr.scaleX = delitel;
                ldr.scaleY = delitel;
                ldr.x = 0;
                ldr.y = (stage.stageHeight - movikHeight*delitel)/2;
        }
} else {
                delitel = stage.stageWidth/movikWidth;
                ldr.scaleX = delitel;
                ldr.scaleY = delitel;
                ldr.x = (stage.stageWidth - movikWidth)/2;
                ldr.y = (stage.stageHeight - movikHeight)/2;
}
addChild(ldr);



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

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