PDA

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


zepp
24.10.2011, 19:31
Взял готовый кусок кода из самоучителя по созданию игр.
Он создает решетку из клипов "block" в поле основного клипа

//
level = 0;
for(var x=0;x<20;x++) {
for(var y=0;y<10;y++) {
mc = _root.attachMovie("block","block "+x+" "+y,level);
mc._x = 18*x + 9;
mc._y = 18*y + 10;
mс.x = x ;
mс.у = у ;
level++;
}}


В поле основного клипа расположены кнопки.
Какой код прописать для кнопок чтобы они (обращались ко всем клипам "block")
запускали события внутри всех клипов "block"

Вопрос наверное чайниковский, но я делаю мультфильмы во флэш, и задания, где
требуется знание АС очень редко бывают.

Добавлено через 1 минуту
Помогите братья по флэшу.

dark256
24.10.2011, 23:03
mc.onRelease = function(){
for(var x=0;x<20;x++) {
for(var y=0;y<10;y++) {
var targ = _root["block "+x+" "+y]
делаем что-то с targ
}
}
}

zepp
25.10.2011, 08:14
mc.onRelease = function(){
for(var x=0;x<20;x++) {
for(var y=0;y<10;y++) {
var targ = _root["block "+x+" "+y]
gotoAndPlay("black")
}
}
}
Вставил на кнопку.
Что-то ругается, не работает.
**Error** Scene=Scene 1, layer=Layer 19, frame=1:Line 1: Statement must appear within on handler
mc.onRelease = function(){

Добавлено через 21 минуту
В кадре не ругается, но и не работает.
Может имя кнопки где-то прописать надо?

dark256
26.10.2011, 14:30
"Statement must appear within on handler"

не пишите код на объектах
имя кнопки, каждой - пишется вместо mc

zepp
26.10.2011, 18:02
level = 0;
for(var x=0;x<20;x++) {
for(var y=0;y<10;y++) {
mc = _root.attachMovie("block","block "+x+" "+y,level);
mc._x = 18*x + 9;
mc._y = 18*y + 10;
mс.x = x ;
mс.у = у ;
level++;
}}
kn_black.onRelease = function(){
for(var x=0;x<20;x++) {
for(var y=0;y<10;y++) {
var targ = _root["block "+x+" "+y, level]
gotoAndPlay("black")
}
}
}
Такой вот код в первом кадре, имя кнопки соответственно kn_black.
Блоки все равно не слушаются кнопку.

dark256
27.10.2011, 14:59
Вам надо на КАЖДУ кнопку вроде бы повесить одно и тоже, поэтому вешайте обработчик ВНУТРИ своих двух циклов и именно на "mc"

Ну и таки:

targ.gotoAndPlay("black")

zepp
29.10.2011, 08:51
Все работает. Громаднейшее спасибо.