PDA

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


Bayazet
28.10.2009, 18:55
добрый день
не судите строго - флашем я, так сказать, занимался достаточно давно и те крохи, которые знал, уже забыл. и вот тут вдруг приспичело

что я имею: делаю карту россии с подсвечивающимися регионами, наводишь - регион "загорелся".
регионы сделаны символами-кнопками, а на кадре OVER - символ-анимация, где он собственно плавно "загорается"

подскажите, как реализовать такую фичу: когда уводишь курсор с региона-кнопки он так же плавно потухает? причем т.к. регионов у нас в стране много, желательно бы научить мою карту в этом случае проигрывать ролик "подцветки" в обратном направлении.
в итоге я хочу поиметь эффект, когда быстро проводишь мышкой по стране, а за тобой - шлейф из плавно загорающихся и потухающий субъектов:)

Алиль
28.10.2009, 23:55
mc.onRollOut=function (){
mc.gotoAndPlay();// тут задаете с какого кадра проигрывать ваш мувиклип. Затухание.
}

Bayazet
29.10.2009, 12:24
хм.. а куда этот код подставлять?
в символ кнопку?
а если мне надо проиграть какой-то другой символ-анимацию, а не просто клип с какого-то кадра?

amexdesign
29.10.2009, 13:16
что уже сделанно из всего задуманного?

Bayazet
29.10.2009, 13:25
сделаны все регионы кнопками, для каждого сделана анимация плавной подцветки при наведении курсора

evgen_triplex
29.10.2009, 13:50
, а на кадре OVER - символ-анимация, где он собственно плавно "загорается"
сделать обратную анимацию в кадре UP

amexdesign
29.10.2009, 14:07
что-нибудь происходит при нажатии? или только RollOver-RollOut?

Bayazet
29.10.2009, 14:17
при нажатии будет выводится информация о каждом регионе. правда я еще не знаю как это реализовать;)

Добавлено через 5 минут
разве кадр UP это то что нужно?.. минуточку..
ТОЧНО!! как же я сам не догадался:)
просто при загрузке карты сначала все регионы потухнут и все ок. спасибо

при нажатии будет выводится информация о каждом регионе. правда я еще не знаю как это реализовать;) может быть есть идеи?

amexdesign
29.10.2009, 14:41
ясно.
ну вопервых вам надо сделать во всех мувиках регионов анимацию потухания. думаю учить не надо - как?! следующий шаг - выкладываете регионы на сцену в соответствующем порядке и называете их например регион1, регион2 и т.д. создаёте слой для ActionScript и прописываете следующий код:
var regionen:Array = new Array(region1, region2, ..., region100);
for (var i = 0; i < regionen.length; i++) {
var btn:MovieClip = regionen[i];
btn.ID = i;
btn.seen = 0;
//
btn.onRollOver = function() {
if (this.pressed != this.ID) {
this.gotoAndPlay("over");
}else{
this.gotoAndPlay("over");
}

};
btn.onRollOut = function() {
if (this.pressed != this.ID) {
if (!this.seen) {
this.gotoAndPlay("out");
} else {
this.gotoAndStop("out");
}
}
};
btn.onPress = function() {
if(this.pressed != this.ID){
this.oldPressed.enabled = 1;
this.oldPressed.gotoAndStop(1);
this.pressed = this.ID;
this.seen = 1;
this.enabled = 0;
this.oldPressed = this.pressed;
this.gotoAndStop("activ");
//
loader(this.ID); // функция выполняемая при нажатии
}
};
}

Bayazet
29.10.2009, 16:00
вроде как всю графику и анимацию для этой типа-карты я сделал (в прикрепленном архиве, если интересно)

кнопки-регионы назвываются 01, 02, 03 (соотв.числу на автомобильном номере)
01_over, 02_over, 03_over - анимация для кадра OVER соотв. кнопки-региона
01_up, 02_up, 03_up - анимация для UP.

хотелось бы, чтобы при щелчке на соотв. кнопку открывалось и как-нибудь красиво отображалось содержимого соотв файла 01.txt, 02.txt..
помогите реализовать

amexdesign
29.10.2009, 19:02
респект перед вашим усердием. это ж надо 78 мовиков для эффекта over, столько же для эффекта up и ещё 78 кнопок и того 234, 2/3 попусту потерянного времени...
ну вопервых вам надо сделать во всех мувиках регионов анимацию потухания.
здесь я имел ввиду, что потухание прорисовывается в том же мувике где и зажигание с соответствующими командами stop();... каждый этот мувик вытащенный на сцену является кнопкой, если к нему применить
mc.onRollOver = function(){
что означает ваши 78 экстра кнопок совершенно никчему. а чтобу не прописывать функции на каждый мувик в отдельности создаётся массив, что я и показал вам в своём примере.

подвешивая источник, не забывайте вкладывать и fla, а то с swf как-то затруднительно демонстрировать наглядным примером...

evgen_triplex
30.10.2009, 11:15
Нельзя, чтобы имена мувиклипов начинались с цифры.
//Загрузка массива из текстового файла 'txt.txt'
var loader:LoadVars = new LoadVars();
loader.onLoad = function(success:Boolean):Void {
if (success) {
_root.txtArray = loader.txt.split(";");
} else {
trace('файл не найден');
}
};
loader.load("txt.txt");
//при нажатии на кнопку reg_01, создается первая надпись из массива
reg_01.onRelease = function() {
n = 1;
_root.createTextField("txt_"+n,1,0,0,400,22);
_root['txt_'+n].text = _root.txtArray[n-1];
};

//в текстовом файле следующее: &txt=регион1;регион2;регион3;...
//файл должен быть сохранен в формате UTF-8