Ciao
Il problema risiede nello script.
Ti spiego:
Tu hai un layer mascherato, il quale contiene l'istanza barra1.
Per cui questa istanza viene correttamente mascherata.
Nello script è richiamata questa azione
_root.barra1.duplicateMovieClip("barra2", 2);
che serve per creare un duplicato di barra1, cioè barra2.
L'istanza barra2 però NON viene posizionata nel layer dove risiede barra1 e NON risulterà mascherata. In realtà essendo creata da script non può essere posizionata in alcun layer. Può essere soltanto attribuita la profondità z che non implica il fatto che sia o no mascherata.
Da flash6 è possibile impostare delle maschere da script ma ritengo che non sia necessario in questo caso anche perchè quel tutorial è stato fatto per flash5.
Una soluzione è quella di utilizzare un mc contenitore in cui riporre l'istanza barra1, e di conseguenza anche l'istanza barra2 che sarà creata da script, quindi mascherare il mc contenitore anzicchè barra1.
Sarà però neccessario apportare qualche modifica allo script in modo da reindirizzare i target utilizzati.
Ti spiego cosa devi fare:
[list=1][*]Partiamo dal fatto che hai già mascherato l'istanza barra1[*]Dovrai creare il mc contenitore che conterrà l'istanza barra1.
Per cui seleziona l'istanza barra1 e premi F8 per convertirla in simbolo. Nella finestra che ti appare seleziona l'opzione Movie Clip (Clip Filmato) e nomina il simbolo: "contenitore".
Ora non ricordo, ma dalla versione 6 è possibile impostare anche il centro di registrazione. E' importante che l'istanza barra1 risulti centrata all'interno di contenitore[*]Una volta creato contenitore ritorna al livello principale e assegna il nome all'istanza, tanto per non sbagliarci chiamala "contenitore"[*]In fine seleziona il mc vuoto con lo script che cambierai con questo opportunamente modificato:
codice:
onClipEvent (load) {
centro = _root.contenitore.barra1._x;
larghezza = _root.contenitore.barra1._width;
destra = centro+larghezza;
sinistra = centro-larghezza;
_root.contenitore.barra1.duplicateMovieClip("barra2", 2);
_root.contenitore.barra2._x = destra;
}
onClipEvent (mouseMove) {
_x = _root._xmouse-_root.contenitore._x;
}
onClipEvent (enterFrame) {
mouseX = Math.round(_x-centro)*-1;
mouseX = Math.round(mouseX/15);
_root.contenitore.barra1._x += mouseX;
_root.contenitore.barra2._x += mouseX;
barra1X = _root.contenitore.barra1._x;
barra2X = _root.contenitore.barra2._x;
if (barra1X<sinistra) {
_root.contenitore.barra1._x = barra2X+larghezza;
}
if (barra2X<sinistra) {
_root.contenitore.barra2._x = barra1X+larghezza;
}
if (barra1X>destra) {
_root.contenitore.barra1._x = barra2X-larghezza;
}
if (barra2X>destra) {
_root.contenitore.barra2._x = barra1X-larghezza;
}
}
[/list=1]
Ora devrebbe funzionare correttamente.