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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 30.09.2006, 23:15
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 11  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 Makak:
Вы меня огорчаете... Я вам до сего момента сделал 2 примера, а вы всё равно прикрепляете свой исходник, который сделан заново и ужасно. Я же вынес все скрипты на отдельный слой, чтобы все они были в одном месте, а вы снова распихали всё по мувиклипам. Да ещё и используете допотопные способы доступа к свойствам обьектов... setProperty() уже давно не использует никто... Я вам написал ещё один пример... И я вас прошу, разберитесь в нём... В следующий раз я скорее всего уже ничего писать не буду, если вы опять всё переиначите. Может вам кажется, что я написал что-то сложное? Ну так спрашивайте. Затем этот форум и создан - чтобы спрашивать.
Итак, возвращаясь к вашему примеру...
Два мувиклипа областей карты, которые лежат у нас на сцене, называем, соответственно, region1 и region2. На кадре в отдельном слое скриптов пишем:
Код:
var MAX_SCALE:Number = 120;
var DEFAULT_SCALE:Number = 100;

this.region1.speed = 0;
this.region1.speedFactor = DEFAULT_SCALE;
this.region2.speed = 0;
this.region2.speedFactor = DEFAULT_SCALE;

this.region1.onRollOver = function()
{
	this.speedFactor = MAX_SCALE;
	this.swapDepths(this._parent.getNextHighestDepth());
}

this.region1.onRollOut = this.region1.onReleaseOutside = function()
{
	this.speedFactor = DEFAULT_SCALE;
}

this.region1.onEnterFrame = function()
{
	this.speed = (this.speed * 0.8) + ((this.speedFactor - this._xscale) * 0.2);
	this._xscale += this.speed;
	this._yscale = this._xscale;
}

this.region2.onRollOver = this.region2.onReleaseOutside = this.region1.onRollOver;
this.region2.onRollOut = this.region1.onRollOut;
this.region2.onEnterFrame = this.region1.onEnterFrame;
Ваше "болтание" мувиклипом областей действует по принципу пружинки. То есть, когда вы наводите на мувиклип курсор, его _xscale и _yscale стремятся к величине MAX_SCALE, которая в вашем случае равна 120. При "уведении" курсора, вышеуказанные величины стремятся к величине DEFAULT_SCALE, которая равна 100. Это соответствует, кстати, значениями свойств _xscale и _yscale мувиклипа по умолчанию.
Короче, это в неявном виде закон Гука + интеграция Эйлера...
Далее я сократил тот скрипт, что был у вас, выбросил ненужное... У вас же мувиклип увеличивается пропорционально, поэтому нет смысла вводить скорости для разных осей. Наконец, события для обоих мувиклипов идентичны, поэтому нет смысла описывать по несколько раз одно и то же...
Ну и смена глубины происходит на наведение мыши в строчке:
Код:
this.swapDepths(this._parent.getNextHighestDepth());
Всё... Разбирайтесь... Пример прикрепляю...

PS:
И я вас прошу, не переиначивайте всё заново. Я ж для ответа вам время трачу, а потом выходит, что зря...
Вложения
Тип файла: zip swapDepths.zip (6.9 Кб, 67 просмотров)
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

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

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

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


 


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


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