PDA

Просмотр полной версии : меню типа карусель


Ossikuro
14.06.2009, 12:09
Подскажите пожалуйста, смотрела аналоги для меню типа карусель, не нашла нужного: во всех примерах вводится переменная и создается фактически 1 кнопка, под которую подкладывают картинки. Т.е получается что анимация для всех кнопок одинаковая. Как можно сделать свою анимацию для всех кнопок, при этом сохранив вращение-карусель?

stop();


var total:Number = 12;


var label_list:Array = new Array( "041_horizontal_scroller", "042_vertical_scroller", "043_intro", "044_intro", "045_elastic", "046_thumbnail_xml", "047_present", "048_vertical_menu_xml", "049_horizontal_menu_xml", "050_star_effect", "051_star_motion", "052_design");

var link_list:Array = new Array("http://www.flashmo.com/preview/flashmo_041_horizontal_scroller", "http://www.flashmo.com/preview/flashmo_042_vertical_scroller", "http://www.flashmo.com/preview/flashmo_043_intro", "http://www.flashmo.com/preview/flashmo_044_intro", "http://www.flashmo.com/preview/flashmo_045_elastic", "http://www.flashmo.com/preview/flashmo_046_thumbnail_xml", "http://www.flashmo.com/preview/flashmo_047_present", "http://www.flashmo.com/preview/flashmo_048_vertical_menu_xml", "http://www.flashmo.com/preview/flashmo_049_horizontal_menu_xml", "http://www.flashmo.com/preview/flashmo_050_star_effect", "http://www.flashmo.com/preview/flashmo_051_star_motion", "http://www.flashmo.com/preview/flashmo_052_design");

var radiusX:Number = 330;
var radiusY:Number = 90;
var centerX:Number = 400;
var centerY:Number = 140;
var speed:Number = 0.005;
tn_group_mc._visible = false;
info.text = ""; fm_label.text = "";

for( var i = 0; i < total; i++)
{
var t = tn_group_mc.duplicateMovieClip("tn"+i, i);
t.tn_mc.gotoAndStop(i+1); t.tn_shadow_mc.gotoAndStop(i+1);
t.fm_label = label_list[i];
t.fm_url = link_list[i];

t.angle = i * ((Math.PI*2)/total);
t.onEnterFrame = mover;

t.fm_button.onRollOver = function()
{
fm_label.text = "Title: " + this._parent.fm_label;
info.text = "URL: " + this._parent.fm_url;
}
t.fm_button.onRollOut = function()
{
info.text = ""; fm_label.text = "";
}
t.fm_button.onRelease = function()
{
getURL( this._parent.fm_url );
}

(все имена - это джипеги, если ставить вместо джипег такие же свфки - то анимация происходит все время, пока открыт документ, мне нужно чтоб кнопочка анимировалась только при наведении на нее, у каждой кнопки должна быть свой мульт)

Алиль
14.06.2009, 14:36
У вас код не оформлен по правилам форума! Ждите замечаний....

А делается так...выделяете код и выбираете AS или AS3

Вот так

stop();


var total:Number = 12;


var label_list:Array = new Array( "041_horizontal_scroller", "042_vertical_scroller", "043_intro", "044_intro", "045_elastic", "046_thumbnail_xml", "047_present", "048_vertical_menu_xml", "049_horizontal_menu_xml", "050_star_effect", "051_star_motion", "052_design");

var link_list:Array = new Array("http://www.flashmo.com/preview/flashmo_041_horizontal_scroller", "http://www.flashmo.com/preview/flashmo_042_vertical_scroller", "http://www.flashmo.com/preview/flashmo_043_intro", "http://www.flashmo.com/preview/flashmo_044_intro", "http://www.flashmo.com/preview/flashmo_045_elastic", "http://www.flashmo.com/preview/flashmo_046_thumbnail_xml", "http://www.flashmo.com/preview/flashmo_047_present", "http://www.flashmo.com/preview/flashmo_048_vertical_menu_xml", "http://www.flashmo.com/preview/flashmo_049_horizontal_menu_xml", "http://www.flashmo.com/preview/flashmo_050_star_effect", "http://www.flashmo.com/preview/flashmo_051_star_motion", "http://www.flashmo.com/preview/flashmo_052_design");

var radiusX:Number = 330;
var radiusY:Number = 90;
var centerX:Number = 400;
var centerY:Number = 140;
var speed:Number = 0.005;
tn_group_mc._visible = false;
info.text = ""; fm_label.text = "";

for( var i = 0; i < total; i++)
{
var t = tn_group_mc.duplicateMovieClip("tn"+i, i);
t.tn_mc.gotoAndStop(i+1); t.tn_shadow_mc.gotoAndStop(i+1);
t.fm_label = label_list[i];
t.fm_url = link_list[i];

t.angle = i * ((Math.PI*2)/total);
t.onEnterFrame = mover;

t.fm_button.onRollOver = function()
{
fm_label.text = "Title: " + this._parent.fm_label;
info.text = "URL: " + this._parent.fm_url;
}
t.fm_button.onRollOut = function()
{
info.text = ""; fm_label.text = "";
}
t.fm_button.onRelease = function()
{
getURL( this._parent.fm_url );
}

К вашему коду ничего я не добавлял..

А если вАШ ВОПРОС ПРАВИЛЬНО ПОНЯЛ, ТО вАМ НУЖНО СДЕЛАТЬ СВОЮ АНИМАЦИЮ И ВСТАВИТЬ ВМЕСТО СТАРОЙ!
кАКОЙ ВОПРОС ТАКОЙ ОТВЕТ!

Ossikuro
15.06.2009, 07:19
У меня есть кнопки с одинаковой анимацией (отличаются только картинками), а нужно каждой кнопке дать свою анимацию.
Спасибо за замечание)

BestDay
15.06.2009, 13:25
var t = tn_group_mc.duplicateMovieClip("tn"+i, i);
заменить на
var t = _root['tn_group_mc'+i].duplicateMovieClip("tn"+i, i);
и соответственно необходимо иметь эти tn_group_mc0, tn_group_mc1, tn_group_mc2 ...

Ossikuro
16.06.2009, 05:25
спасибо огромное, помогло, оч сапсли