PDA

Просмотр полной версии : создание кнопок


zzz_dmg
17.12.2008, 16:16
в чем может быть проблема. делаю расстановку кнопок и при нажатии срабатывает всегда пятая кнопка (при выводе пишет _level0.bigcontejner.bigs.small4).
если писать в ролловерах цифры вместо i - то срабатывают все

_root.bigcontejner.createEmptyMovieClip("bigs", 9000);

for (i = 0;i< len-1;i++){
_root.bigcontejner.bigs.createEmptyMovieClip("small"+i, i+100);
_root.bigcontejner.bigs['small'+i].createEmptyMovieClip("_mc", i+10);
_root.bigcontejner.bigs['small'+i]._mc.loadMovie(_root.smallPics[i], i+1);
_root.bigcontejner.bigs['small'+i]._x = 95*i+5;
_root.bigcontejner.bigs['small'+i]._mc._alpha = 50;

_root.bigcontejner.bigs['small'+i].onRollOver = function (){

_root.bigcontejner.bigs['small'+i]._mc._alpha = 100;
}
_root.bigcontejner.bigs['small'+i].onRollOut = function (){
_root.bigcontejner.bigs['small'+i]._mc._alpha = 50;
}
}

nOobCrafter
17.12.2008, 16:24
Смотри, последнее значение i у тебя какое? Правильно 5 (ну вроде как 5, можешь повесить на кнопку trace(i) ), стало быть 'small'+i = small5 к ней ты и обращаешься. Попробуй использовать "относительную" ссылку в адресе, типа this.

zzz_dmg
17.12.2008, 16:26
последние значение i у меня 10

Kuruki
17.12.2008, 16:31
_root.bigcontejner.bigs['small'+i].onRollOver = function (){

this._mc._alpha = 100;
}
_root.bigcontejner.bigs['small'+i].onRollOut = function (){
this._mc._alpha = 50;
}

zzz_dmg
17.12.2008, 16:33
спасибо. заработало)

lexa2000lexa
17.12.2008, 16:34
_root.bigcontejner.createEmptyMovieClip("bigs", 9000);

for (i = 0;i< len-1;i++){
_root.bigcontejner.bigs.createEmptyMovieClip("small"+i, i+100);
_root.bigcontejner.bigs['small'+i].createEmptyMovieClip("_mc", i+10);
_root.bigcontejner.bigs['small'+i]._mc.loadMovie(_root.smallPics[i], i+1);
_root.bigcontejner.bigs['small'+i]._x = 95*i+5;
_root.bigcontejner.bigs['small'+i]._mc._alpha = 50;

_root.bigcontejner.bigs['small'+i].onRollOver = function (){

this._mc._alpha = 100;
}
_root.bigcontejner.bigs['small'+i].onRollOut = function (){
this._mc._alpha = 50;
}
}

Wolsh
17.12.2008, 18:35
Пожалейте процессор и свои глаза.
var bigs:MovieClip = _root.bigcontejner.createEmptyMovieClip("bigs", 9000);
for (i = 0;i< len-1;i++){
var small:MovieClip = bigs.createEmptyMovieClip("small"+i, i+100);
var _smc:MovieClip = small.createEmptyMovieClip("_mc", i+10);
_smc.loadMovie(_root.smallPics[i], i+1);
_smc._alpha = 50;
small._x = 95*i+5;
small.onRollOver = function () {
this._mc._alpha = 100;
}
small.onRollOut = function () {
this._mc._alpha = 50;
}
}

zzz_dmg
18.12.2008, 14:51
простите за глупый вопрос, но ...
а как мне обратиться к i в цикле от 0 до len-1, при котором было совершенного нажатие?

Kuruki
18.12.2008, 15:22
_root.bigcontejner.bigs['small'+i].i = i;

_root.bigcontejner.bigs['small'+i].onRollOver = function (){

this._mc._alpha = 100;
trace(this.i);
}

zzz_dmg
18.12.2008, 16:20
пишет undefined(

Kuruki
18.12.2008, 16:35
Должно все работать. Вы в тело вашего цикла то вставили его (код)?

zzz_dmg
18.12.2008, 16:42
for (i = 0;i< len-1;i++){
_root.bigcontejner.bigs['small'+i].i = i;
_root.bigcontejner.bigArea['small'+i].onRelease = function(){
trace(this.i);
_root.big.contejner.clip.removeMovieClip();
_root.big.contejner.loadMovie(_root.lagePics[1]);
_root.mov._alpha = 100;
_root.info._alpha = 100;
_root.info.link.txt.text = _root.path[0];
_root.info._client.txt.text = _root.client[0];
}

Kuruki
18.12.2008, 16:54
bigs != bigArea