![]() |
|
||||||||||
|
|||||
|
[6 05.09.2006]
Регистрация: Jul 2000
Адрес: Москва
Сообщений: 338
|
Интересует такой вопрос. Вот есть у меня резиновый флеш. Stage использую. Объект ориентирован по центру и двигается вверх-вниз в зависимости от высоты экрана браузера находясь постоянно внизу. Все работет, но заковыка в том, что объект должен переставать двигаться при достижении какой-то заданой высоты. Например пока высота экрана больше 500 пик объект тянется, как только 500 и меньше останавливается (и может даже пропадает из виду). Каково может быть решение такой задачи?
Ниже приведу скрипт, который делает флешш резиновым. Stage.scaleMode = "noScale";
Stage.align = "T";
var resize_obj = {};
resize_obj.normal_width = 1008;
resize_obj.normal_height = 800;
resize_obj.position = [fonmenu];
resize_obj.onResize = function()
{
var clip;
for (var i in this.position) {
clip = this.position[i];
fonmenu._y = Stage.height-30;
}
}
};
Stage.addListener(resize_obj);
var clip;
for (var i in resize_obj.position) {
clip = resize_obj.position[i];
clip._yRatio = clip._y/resize_obj.normal_height;
}
fonmenu._widthRatio = onmenu._width/resize_obj.normal_width;
resize_obj.onResize();
Вопрос может не очень глубокий, но очень надо получить ответ. Прямо очччччень.....
__________________
Анатомию курицы мы знаем лучше, чем свою... факт Последний раз редактировалось Bunkoff; 30.11.2007 в 14:48. |
|
|||||
|
а так разве не прокатит?
|
|
|||||
|
Регистрация: Apr 2007
Сообщений: 1,369
|
Да, но только без онЕнтерФреймов всяких, их можно в начале запускать для начального позиционирования (+ там же условия), а в общем:
|
|
|||||
|
[6 05.09.2006]
Регистрация: Jul 2000
Адрес: Москва
Сообщений: 338
|
Частично проблема решена. Дотумкал. Правда код на два кадра. в первом мой код резины, а во втором условный оператор на позиционирование объекта в зависимости от высоты окна. Но проблема решена только частично. Получается, что если изначально загружать сайт в браузер открытый, к примеру, всего на 300 пиков в высоту, то объект загружается в видимую область окна, а вовсе не на свои положеные 500 пикселей. Короче нужно какое-то изначальное позиционирование. Но подозреваю, что без третьего кадра с кодом не обойтись. Правильно ли я мыслю, что в первом кадре код, изначально позиционирующий объект, во втором код "резины", в третьем проверка позиции объекта и назначение ему координат в зависимости от текущего положения в окне? Или все можно сделать проще? Посмотрите мой код. Можно ли его модорнизировать под мои задачи?
__________________
Анатомию курицы мы знаем лучше, чем свою... факт |
|
|||||
|
Смысл делать в 3 кадра код?
Пусть код будет на 10000 строк, лучше чтобы он был в 1 кадре (имхо), или во внешних ас файлах и классах. Итак, (код не тестил, но работать должно) var myListener:Object = new Object();
myListener.onResize = function () {
if( Stage.width < 1000 )
{
lessThen();
}
}
Stage.addListener(myListener);
function lessThen():Void{
trace('less then 1000');
}
if( Stage.width < 1000 ) lessThen();
Пишем функцию, что делать с обьектами если вдруг сцена меньше 1000 пикселей, при ресайзе проверяем, меньше ли она 1000 пикеселей, если да, вызываем эту функцию (я назвал её lessThen). А после всего этого, просто проверяю, окно в начальном режиме было с каким размером. Если меньше 1000, вызываю lessThen
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
[6 05.09.2006]
Регистрация: Jul 2000
Адрес: Москва
Сообщений: 338
|
Спасибо.... С моим скудным знанием AS буду разбираться в этом коде какое то время. Заработает - сообщу. А что делать если надо менять позиции нескольким объектам? Может быть у кого нибудь готовые исходники завалялись?
Еще раз спасибо за помощь. Получилось все в лучшем виде.......
__________________
Анатомию курицы мы знаем лучше, чем свою... факт Последний раз редактировалось etc; 30.11.2007 в 10:50. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Bunkoff, отредактируйте свой первый пост и оформите код тегами [code][/code].
|
|
|||||
|
Цитата:
Цитата:
![]() |
|
|||||
|
Регистрация: Apr 2007
Сообщений: 1,369
|
Отццы.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 19:45. |
|
|
« Предыдущая тема | Следующая тема » |
|
|