PDA

Просмотр полной версии : Навигация внутри сцены (синтаксис)


serdeles
18.05.2010, 15:02
Дано:

1)Сцена
2)мувик button (выполняет функцию кнопки — так же как и его копии с разными именами: button1, button2 и т. д.)
3)mc2 (контейнер — туда вложен мувик с анимацией), а копии контейнера под разными именами лежат на Сцене
4)mc3 (мувик с анимацией, который надо приводить в движение, нажав на button).

Вопрос: как указать мувику button, где находятся мувик mc3?

Этот код не работает, поскольку mc3 находится не на сцене, а вложен в mc2.


button.onRelease = function() {
mc3.gotoAndPlay(1);

var arr:Array = [mc4, mc5, mc6]
for (var i:Number = 0;i<arr.length;i++){
var mc:MovieClip = arr[i]
mc.onEnterFrame = function()
{
if (this._currentframe == 49)
{
delete this.onEnterFrame;
}

else
{
this.prevFrame();
}
};
};

}


Приложу исходник. По сути, код там тот же, но мувики имеют другие имена (button = rec, mc2 = circle, mc3 = tube).

Кстати, тоже непонятный момент: на сцене копии circle имеют разные псевдонимы, но tube внутри circle только один. Как выйти из положения в такой ситуации?

in4core
18.05.2010, 15:26
button.onRelease = function() {
mc2.mc3.gotoAndPlay(1);

var arr:Array = [mc4, mc5, mc6]
for (var i:Number = 0;i<arr.length;i++){
var mc:MovieClip = arr[i]
mc.onEnterFrame = function()
{
if (this._currentframe == 49)
{
delete this.onEnterFrame;
}

else
{
this.prevFrame();
}
};
};

}

lexa2000lexa
18.05.2010, 15:34
var arr:Array = [circle1, circle2, circle3, circle4, circle5, circle6]
for(var i:Number = 0;i<arr.length;i++){
var but:MovieClip = this["rec"+(i+1)];
but.id = i
but.onRelease = function() {
arr[this.id].tube.play();
for(var j:Number = 0;j<arr.length;j++){
if(j!=this.id){
var circle:MovieClip = arr[j].tube;
if(circle._currentframe >49){
circle.onEnterFrame = function() {
if(this._currentframe!=50){
this.prevFrame()
} else {
delete this.onEnterFrame;
}
}
}
}
}
}
}

serdeles
18.05.2010, 16:26
lexa2000lexa, спасибо! Именно то, что требовалось!
in4core, спасибо, код работает, но в данной ситуации код Лехи подошёл вообще идеально.