Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   кнопки не реагируют (http://www.flasher.ru/forum/showthread.php?t=73789)

villa 03.01.2006 16:14

кнопки не реагируют
 
Всех с праздниками!!!
помогите разобраться в следующем
пишу такой код:
Код:

count=0;
function chek() {
if (count<=7) {
_root.attachMovie("btn_mc", "btn_mc"+count, count, {_x:(count+1)*100, _y:535});
count++;
}
}
var interval = setInterval(chek, 500);

мувик btn_mc содержит кнопу btn. далее пишу следуещее:
Код:

for (i=0; i<=7; i++) {
_root["btn_mc"+i].btn.onRelease = function() {
бла бла бла
}
};
}

результат - кнопы не работают
где я не прав?

Antares 03.01.2006 16:19

99% -- не учел, что у у кнопок нет своего Таймлайна, а значит, this у них указывает на родительский.

А вообще за использование Button надо отрывать руки. Мувиклипы имеют все то же, и куда больше.

villa 03.01.2006 16:56

Antares, главное не нервничай.
1. btn теперь не кнопа, а мувик - результат тот же.
2. где у меня this и причем здесь Таймлайн?

K.A.T.A.F.A.L.K.E.R 03.01.2006 17:32

_root["btn_mc"+i].btn.onRelease = function() {
бла бла бла
}
а шо они с таким кодом вообще делать должны?
С праздниками! :D

K.A.T.A.F.A.L.K.E.R 03.01.2006 17:34

погодь, а ты в каком порядке все это делаешь? Сначала описываешь действия а потом дублируешь? И вообще - не проще ли назначать действие сразу при создании???

K.A.T.A.F.A.L.K.E.R 03.01.2006 17:37

Цитата:

Сообщение от Antares
А вообще за использование Button надо отрывать руки. Мувиклипы имеют все то же, и куда больше.

подписываюсь под этими словами. Единственный случай когда можно было бы юзать button - когда нужно че-то по-быстрому потестить (нарисовать прямоугольничек, сделать из него кнопку и написать on(release) быстрее чем еще и имя задавать :D )...

villa 03.01.2006 17:44

я ж, блин, написал - от кнопок избавился

действо слишком закручено

Код:

stop();
count = 0;
num = -1;
act = 0;
ims = ["sorry.swf", "sorry.swf", "sorry.swf", "galrus.swf", "sorry.swf", "sorry.swf", "GuestBook1.swf", "sorry.swf"];
itms = ["ГЛАВНАЯ", "БИОГРАФИЯ", "МУЗЫКА", "ФОТО", "ВИДЕО", "ЛИРИКА", "ГОСЕТВАЯ", "КОНТАКТЫ"];
this.onEnterFrame = function() {
this.ground._xscale<100 ? (this.ground._xscale += 5) : (this.ground._xscale=100, delete this.onEnterFrame);
};
_root.createEmptyMovieClip("container", _root.getNextHighestDepth());
function preload(num) {
container.createEmptyMovieClip("img", 0);
this.attachMovie("line", "line", 100);
line._x = _root._width/2;
line._y = 310;
line.bar._xscale = 0;
if (num != numb) {
container.img.loadMovie(ims[num]);
numb = num;
this.onEnterFrame = function() {
var l = container.img.getBytesLoaded();
var t = container.img.getBytesTotal();
prc = (l/t)*100;
line.bar._xscale = prc;
line.txt = int(prc)+" %";
if (l && t && l>=t) {
        line.removeMovieClip();
        this.onEnterFrame = null;
        container.fadeIn();
}
};
}
}
MovieClip.prototype.In = function() {
this.onEnterFrame = function() {
this._x = 10;
this._y = 85;
this._alpha<100 ? (this._alpha += 10, act=true) : (this._alpha=100, delete this.onEnterFrame, act=false);
};
};
function Out() {
this.onEnterFrame = function() {
container._alpha>0 ? (container._alpha -= 10, act=true) : (delete this.onEnterFrame, act=false, removeMovieClip(img), preload(num));
};
}
function chek() {
if (count<=7) {
_root.attachMovie("btn_mc", "btn_mc"+count, count, {_x:(count+1)*100, _y:535});
//в btn_mc у меня МУВИК c dinamic text
_root["btn_mc"+count].btn.item = itms[count];
count++;
}
}
var interval = setInterval(chek, 500);
for (i=0; i<=7; i++) {
_root["btn_mc"+i].btn.onRelease = function() {
if (num != this.i && !act) {
num = this.i;
Out();
}
};
}


K.A.T.A.F.A.L.K.E.R 03.01.2006 18:07

йпрст
function chek() {
if (count<=7) {
_root.attachMovie("btn_mc", "btn_mc"+count, count, {_x:(count+1)*100, _y:535});
//в btn_mc у меня МУВИК c dinamic text
_root["btn_mc"+count].btn.item = itms[count];
count++;
}
}
var interval = setInterval(chek, 500);
for (i=0; i<=7; i++) {
_root["btn_mc"+i].btn.onRelease = function() {
//действительно блаблабла
trace(this) - сделай ТАК! И будет тебе 8 undefined - ов!!! Нету еще в этот момент этих мувиков, НЕТУ! Их создаст твой check через 500*8/1000 = 4 сек! Принцип прост: утром деньги - вечером стулья!!!
}
};

K.A.T.A.F.A.L.K.E.R 03.01.2006 18:10

Сделай так...

function chek() {
if (count<=7) {
_root.attachMovie("btn_mc", "btn_mc"+count, count, {_xcount+1)*100, _y:535});
_root["btn_mc"+count].btn.item = itms[count];
_root["btn_mc"+count].btn.onRelease = function() {
бла бла бла
}
count++;
}
}
var interval = setInterval(chek, 500);

А лучше все перепиши... Как-то оно сложно читается... Я так и не понял что оно все делает... :confused:

villa 03.01.2006 18:12

а надо чтоб были
как?


Часовой пояс GMT +4, время: 12:18.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.