Просмотр полной версии : Прилипание клипа к краю окна
Archi_xxx
09.06.2010, 19:35
Приветствую.
мне нужно сделать прилипание градиента к краю окна, то есть к нижней границе, чтобы градиент не зависимо от разрешения экрана\размера окна ВСЕГДА был внизу, можно ли это организовать средствами только AS ?
Конечно можно.
Например ваш градиент запихиваете в мувик под названием gradient, а на первом кадре вешаем код:
Stage.align="TL";
Stage.scaleMode="noScale";
funcResize=function(){
gradient._y=Stage.height-gradient._height;
}
var myListener:Object = new Object();
myListener.onResize = function() {
funcResize();
};
Stage.addListener(myListener);
funcResize();
Archi_xxx
09.06.2010, 20:14
спасибо, разбираюсь.
кпримеру хочу щас прилипнуть к левому краю, но дело в том что сама флешка уже отцентрована
Stage.scaleMode = "noScale";
Stage.align = "T";
посему новый Stage.align влияет на саму флешку, мне нужно выравнивание только для мувика, не подскажете?
Например изначальные размеры вашего компилируемого SWF файла 550x400 и нужно чтобы gradient по оси X всегда был слева - у границы окна при Stage.align = "T":
Stage.scaleMode = "noScale";
Stage.align = "T";
funcResize=function(){
gradient._x=0-(Stage.width-550)/2;
}
var myListener:Object = new Object();
myListener.onResize = function() {
funcResize();
};
Stage.addListener(myListener);
funcResize();
Ну это не удобно когда Stage.align = "T", так как при изменении размеров окна плеера начало координат меняет свое положение.
Если вам нужно центровать флэшку, то легче просто внутри все объекты центровать с помощью _x и _y, при Stage.align="TL";
Archi_xxx
10.06.2010, 01:13
Спасибо огромное, все работает!
для нижней границы окна у меня получилось так (при Stage.align = "T")
funcResize=function(){
gradient._y=980-(Stage.height-1000)/-1; //работает правильно именно с -1 , не могу понять почему
}
var myListener:Object = new Object();
myListener.onResize = function() {
funcResize();
};
Stage.addListener(myListener);
funcResize();
Сами себя путаете такой формулой )) Все проще...
Stage.align = "T" означает, что начало координат всего вашего SWF по оси Y будет всегда совпадать с верхней границей окна флэшплеера - не зависимо от его размеров.
Следовательно, чтобы gradient, например, лежал всегда на нижней границе достаточно написать:
gradient._y=Stage.height-gradient._height;
вот и все =)
Если нужно чтобы gradient, например, высовывался из нижней границы на 20px, то пишем:
gradient._y=Stage.height-20;
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.