PDA

Просмотр полной версии : Как сократить этот код? (однородные действия)


storm_
03.11.2008, 03:37
Дорогие флешеры.
Вновь у меня вопрос к вам.

Количество кнопок и значение переменных берется из ХМЛ.
Переменные и кнопки генерируются счетчиком, там же задается их значение:

for (i=0; i<col; i++) {
all.createEmptyMovieClip("k"+i, i);
all.l.duplicateMovieClip("l"+i, 100+i);
set("link"+i, this.firstChild.childNodes[1+i].attributes["logo"+i]);
}

Потом, каждой кнопке присваивается ее значение.
Каким образом можно будет сократить это выражение:

all.l0.onRelease = function() {trace(link0);}
all.l1.onRelease = function() {trace(link1);}
all.l2.onRelease = function() {trace(link2);}
all.l3.onRelease = function() {trace(link3);}
all.l4.onRelease = function() {trace(link4);}
all.l5.onRelease = function() {trace(link5);}
all.l6.onRelease = function() {trace(link6);}
all.l7.onRelease = function() {trace(link7);}
all.l8.onRelease = function() {trace(link8);}
all.l9.onRelease = function() {trace(link9);}
//и так, практически до бесконечности…

Wolsh
03.11.2008, 04:01
for (i=0; i<col; i++) {
var k_mc:MovieClip = all.createEmptyMovieClip("k"+i, i);
var l_mc:MovieClip = all.l.duplicateMovieClip("l"+i, 100+i);
l_mc.link=this.firstChild.childNodes[1+i].attributes["logo"+i]);
l_mc.onRelease = function() {trace(this.link);}
}

storm_
03.11.2008, 04:09
Круто! Все работает. Wolsh, Большое спасибо.