PDA

Просмотр полной версии : Динамическая настройка навигации


vadult
15.12.2003, 17:12
На главной сцене есть мувиклипы которые назыв. соотв. but1, but2 ... but10
Хочу заставить их работать как кнопки, то есть при наведении на них было одно состояние, при отведении другое а при клике загружался линк который подгруж из внешн. текстового файла
Делаю так

loadVariablesNum("links.txt",0)
for (i=1; i<10; i++)
{
eval("_root.but" + i).onRollOut = function() {
this.gotoAndPlay("s2");
this.useHandCursor=false
};

eval("_root.but" + i).onRollOver = function() {
this.gotoAndPlay("s1");
this.useHandCursor=true
};

eval("_root.but" + i).onRelease = function() {
//this.getURL(eval("_root.link" + i));
//this.i=i;
trace("" + this.i);
};
}


RollOver и RollOut работают отлично а вот при клике на любой мувик загружается URL из переменной link10 (а должно при наж. на but1 загр. link1, but2 - link2 и т. д.)


если делаю так, то всё работает

_root.but4.onRelease = function() {
_root.getURL(_root.link4);
};

но желательно конечно делать это динамично


Подскажите как это реализовать и где трабл.

opex
15.12.2003, 18:01
попробуй так


_root.onEnterFrame = function(){
for (i=1; i<10; i++)
{
_root["but" + i].onRelease = function() {
this.getURL(_root["link"+ i]);
}
}
};
}

но я не уверен

vadult
15.12.2003, 18:44
Всё равно не работает, при нажатии на любой movie clip переходит на ссылку которая хранится в link10

iLoveYou
15.12.2003, 19:02
а ты дождался загрузки переменных?
или у тебя подряд идет:
loadVariablesNum("links.txt",0)
for (i=1; i<10; i++)
{.....

Nox Noctis
15.12.2003, 19:04
Оригинал написал(а) Sergey"iLoveYou"
а ты дождался загрузки переменных?http://demonscity.combats.ru/i/smile/agree.gif

vadult
15.12.2003, 19:35
Шло подряд, я перенёс загрузку переменных в самое начало, но значение последней переменной link10 загружено, значит не в этом проблема

sergwizard
15.12.2003, 20:32
Попробуй так:

links=[];
myVars = new LoadVars();
myVars.load("links.txt");
myVars.onLoad = function(success){
if(success){
for(i=0;i<=10;i++){
links.push(this["link"+i]);
}
}
}
MovieClip.prototype.act = function(){
this.i = _root.i;
this.onRollOver = function(){
this.gotoAndPlay("s2");
this.useHandCursor=false

}
this.onRollOut = function(){
this.gotoAndPlay("s1");
this.useHandCursor=true;
}
this.onRelease = function(){
// trace(links[this.i]);
getURL(links[this.i]);
}
}
for(i=0;i<=10;i++){
_root["but"+i].act();
}

В текстовом файле:
link0=http://flasher.ru&link1=http://flashkit.com&link3=http://blah-blah.com и так далее.

sergwizard
15.12.2003, 21:02
Или так:

loadVariablesNum("links.txt",0);
MovieClip.prototype.act = function(){
this.i = _root.i;
this.onRollOver = function(){
this.gotoAndPlay("s2");
this.useHandCursor=false

}
this.onRollOut = function(){
this.gotoAndPlay("s1");
this.useHandCursor=true;
}
this.onRelease = function(){
// trace(_root["link"+this.i]);
getURL(_root["link"+this.i]);

}
}
for(i=0;i<=10;i++){
_root["but"+i].act();
}