Есть скрипт на АктионСкрипте для вращающего меню.
Как сделать - чтобы когда мышка покидала границы этого флеша - элементы медленно прекращали вращение?Ато они движуться с постойнной скоростю...
Что нужно добавить в коде скрипта?
var j:Number = 5;
//количество кнопак
var a:Number = 150;
//ширина параболы по которой будет двигатся кнопка
var b:Number = 50;
//высота параболы по которой будет двигатся кнопка
var q:Number = 200;
//координаты на главной сцене по оси икс для нашего блока кнопак
var z:Number = 150;
//координаты на главной сцене по оси игрик для нашего блока кнопак
var TEXT:Array = ["", "", "", "", "", "", ""];
//текстовые поля которые будут высвечиватся в наших подсказках
var World:Array = ["
http://www.adobe.com", "
http://www.google.com", "
http://www.flash-mx.ru", "
http://www.rambler.ru", "
http://www.mail.ru", "
http://www.membrana.ru", "
http://www.3dnews.ru"];
//то что должно произойти при нажатии на кнопку
var g:Number = 80;
//меняя значение "q" вы задаете степень уменьшения
var gr:Number = Math.PI/180;
//
var u:Number = 0;
///////////////////////////////////////////////////
///этот кусочек кода управляет уменьшение кнопак///
//////////изменение в коде нетребуется/////////////
var v:Number = 200;
var r:Number = 150;
for (var t:Number = j; t<(j*2); t++) {
createEmptyMovieClip("mv"+t, t);
this["mv"+t].d = 0+t*(360/j);
this["mv"+t].onEnterFrame = function() {
if (_root._xmouse<v) {
this.d -= (v-_root._xmouse)/60;
}
if (_root._xmouse>v) {
this.d -= (v-_root._xmouse)/60;
}
var x = a*Math.cos(this.d*gr);
var y = g*Math.sin(this.d*gr);
this._x = v+x*Math.cos(u*gr)-y*Math.sin(u*gr);
this._y = r+x*Math.sin(u*gr)+y*Math.cos(u*gr);
};
}
///////////////////////////////////////////////////
///////////////////////////////////////////////////
///////////////////////////////////////////////////
for (var i:Number = 0; i<j; i++) {
attachMovie(i, "mc"+i, i);
//создаем для каждой кнопки индивидуальный набор переменных
this["mc"+i].d = 0+i*(360/j);
this["mc"+i].e = i;
//оговариваем поведение наших кнопак
this["mc"+i].onEnterFrame = function() {
if (_root._xmouse<q) {
this.d -= (q-_root._xmouse)/60;
}
if (_root._xmouse>q) {
this.d -= (q-_root._xmouse)/60;
}
// вычисляем координаты по параболе
var x = a*Math.cos(this.d*gr);
var y = b*Math.sin(this.d*gr);
this._x = q+x*Math.cos(u*gr)-y*Math.sin(u*gr);
this._y = z+x*Math.sin(u*gr)+y*Math.cos(u*gr);
//огавариваем уменьшение для наших кнопак
this._xscale = this._yscale=_root["mv"+(this.e+j)]._y/2;
//огавариваем уровень для нащих кнопак
this.swapDepths(+this._y);
//создаём условие стыковки с курсором мыши
if (this.hitTest(_root._xmouse, _root._ymouse)) {
this.attachMovie("help", "help", 1);
this.help._y = -36;
this.help._x = -25;
var w:Number = 12;
with (this.help) {
createTextField("mytext", 2, -w, -w, 70, 20);
myformat = new TextFormat();
myformat.size = w;
myformat.color = 0x003366;
myformat.font = Font;
mytext.selectable = false;
mytext.text = TEXT[this.e];
mytext.setTextFormat(myformat);
}
}
if (!this.hitTest(_root._xmouse, _root._ymouse)) {
this.help.unloadMovie();
}
};
// задаем условие которое должно происходить при нажатии на нашу кнопку
this["mc"+i].onPress = function() {
getURL(World[this.e], "_blank");
};
}
Вот сам флеш:
http://www.flashmx.ru/src/ZIP-1.zip
Ответы (0)
RSSВопрос закрыт