Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.11.2007, 01:44
Bunkoff вне форума Посмотреть профиль Отправить личное сообщение для Bunkoff Найти все сообщения от Bunkoff
  № 1  
Ответить с цитированием
Bunkoff
[6 05.09.2006]
 
Аватар для Bunkoff

Регистрация: 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.
Старый 30.11.2007, 03:26
B0Bka вне форума Посмотреть профиль Отправить личное сообщение для B0Bka Найти все сообщения от B0Bka
  № 2  
Ответить с цитированием
B0Bka
 
Аватар для B0Bka

Регистрация: May 2004
Сообщений: 136
Отправить сообщение для B0Bka с помощью ICQ
а так разве не прокатит?
Код:
onEnterFrame = function() {
    if (Stage.height < 500) mc._y = Stage.height-mc._height;
    else mc._y = 500-mc._height;
}

Старый 30.11.2007, 03:50
Molecula вне форума Посмотреть профиль Отправить личное сообщение для Molecula Найти все сообщения от Molecula
  № 3  
Ответить с цитированием
Molecula
 
Аватар для Molecula

Регистрация: Apr 2007
Сообщений: 1,369
Да, но только без онЕнтерФреймов всяких, их можно в начале запускать для начального позиционирования (+ там же условия), а в общем:
Код:
var myListener:Object = new Object();
myListener.onResize = function () {
   if( Stage.width < 1000 )
{
trace('less than 1000')
}
}
Stage.addListener(myListener);

Старый 30.11.2007, 04:46
Bunkoff вне форума Посмотреть профиль Отправить личное сообщение для Bunkoff Найти все сообщения от Bunkoff
  № 4  
Ответить с цитированием
Bunkoff
[6 05.09.2006]
 
Аватар для Bunkoff

Регистрация: Jul 2000
Адрес: Москва
Сообщений: 338
Частично проблема решена. Дотумкал. Правда код на два кадра. в первом мой код резины, а во втором условный оператор на позиционирование объекта в зависимости от высоты окна. Но проблема решена только частично. Получается, что если изначально загружать сайт в браузер открытый, к примеру, всего на 300 пиков в высоту, то объект загружается в видимую область окна, а вовсе не на свои положеные 500 пикселей. Короче нужно какое-то изначальное позиционирование. Но подозреваю, что без третьего кадра с кодом не обойтись. Правильно ли я мыслю, что в первом кадре код, изначально позиционирующий объект, во втором код "резины", в третьем проверка позиции объекта и назначение ему координат в зависимости от текущего положения в окне? Или все можно сделать проще? Посмотрите мой код. Можно ли его модорнизировать под мои задачи?
__________________
Анатомию курицы мы знаем лучше, чем свою... факт

Старый 30.11.2007, 08:40
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 5  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Смысл делать в 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

Старый 30.11.2007, 08:54
Bunkoff вне форума Посмотреть профиль Отправить личное сообщение для Bunkoff Найти все сообщения от Bunkoff
  № 6  
Ответить с цитированием
Bunkoff
[6 05.09.2006]
 
Аватар для Bunkoff

Регистрация: Jul 2000
Адрес: Москва
Сообщений: 338
Спасибо.... С моим скудным знанием AS буду разбираться в этом коде какое то время. Заработает - сообщу. А что делать если надо менять позиции нескольким объектам? Может быть у кого нибудь готовые исходники завалялись?

Еще раз спасибо за помощь. Получилось все в лучшем виде.......
__________________
Анатомию курицы мы знаем лучше, чем свою... факт


Последний раз редактировалось etc; 30.11.2007 в 10:50.
Старый 30.11.2007, 10:51
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Bunkoff, отредактируйте свой первый пост и оформите код тегами [code][/code].

Старый 01.12.2007, 02:35
B0Bka вне форума Посмотреть профиль Отправить личное сообщение для B0Bka Найти все сообщения от B0Bka
  № 8  
Ответить с цитированием
B0Bka
 
Аватар для B0Bka

Регистрация: May 2004
Сообщений: 136
Отправить сообщение для B0Bka с помощью ICQ
Цитата:
Сообщение от Molecula
Да, но только без онЕнтерФреймов всяких
Цитата:
Частично проблема решена. Дотумкал. Правда код на два кадра. в первом мой код резины, а во втором условный оператор
Molecula ты про ЕнтерФреймы заикнулся а проблему вообще в три кадра решают

Старый 01.12.2007, 02:40
Molecula вне форума Посмотреть профиль Отправить личное сообщение для Molecula Найти все сообщения от Molecula
  № 9  
Ответить с цитированием
Molecula
 
Аватар для Molecula

Регистрация: Apr 2007
Сообщений: 1,369
Отццы.

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:53.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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