Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    79

    Riguardando Slide Immagini (Flash5)

    Ciao, sto cercando di applicare una maschera allo slide immagine che viene spiegato da Negatyve al seguente link http://flash-mx.html.it/guide/view_l...dguida=6&id=80
    ho visto che in alcuni post è saltato fuori proprio questo problema però non viene pubblicata una soluzione pubblica, qualcuno gentilmente può indicare una soluzione. Sono 3 giorni che sono inchiodato.
    Riposto il codice presente per comodità:

    onClipEvent (load) {
    centro = _root.barra1._x;
    larghezza = _root.barra1._width;
    destra = centro + larghezza;
    sinistra = centro - larghezza;
    _root.barra1.duplicateMovieClip("barra2", 2);
    _root.barra2._x = destra;
    }

    onClipEvent (mouseMove) {
    _x = _root._xmouse;
    }

    onClipEvent (enterFrame) {
    mouseX = Math.round(_x-centro)*-1;
    mouseX = Math.round(mouseX/15);
    _root.barra1._x += mouseX;
    _root.barra2._x += mouseX;
    barra1X = _root.barra1._x;
    barra2X = _root.barra2._x;
    if (barra1X < sinistra) {
    _root.barra1._x = barra2X + larghezza;
    }
    if (barra2X < sinistra) {
    _root.barra2._x = barra1X + larghezza;
    }
    if (barra1X > destra) {
    _root.barra1._x = barra2X - larghezza;
    }
    if (barra2X > destra) {
    _root.barra2._x = barra1X - larghezza;
    }
    }

    ...grazie a tutti in anticipo
    Femtox

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    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.

    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    79
    ....molte grazie per la risposta, adesso provo e ti so dire...

    ciao

    Femtox

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    79
    ...funzia alla grande, grazie, non ci sarei mai arrivato, ho imparato una cosa nuova...

    ciao

  5. #5
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771

    eeeee si!!

    non si finisce mai di imparare

    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  6. #6
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Originariamente inviato da KillerWorm

    eeeee si!!

    non si finisce mai di imparare

    ...e come ti stavo dicevo

    visitando altre richieste o trovato per caso un post dove è stato indicato un tutorial in cui viene utilizzato lo stesso script esposto da Negatyve.
    http://www.rempox.it/forum/actionscr...de_scroll.html
    In questo tutorial però è incluso l'utilizzo della maschera..
    Ul problema delle profondità viene risolto creando una maschera dinamica, ovvero ponendo un mc (rettangolare) sul layer maschera, al quale viene associato semplicemente questo script

    onClipEvent (enterFrame) {
    this.swapDepths(10);
    }

    Questo farà in modo di mantenere la maschera sempre ad un livello di profondità superiore di quello delle barre immagini..

    Semplice no?

    Questo per dire che per ogni situazione ci sono sempre diverse soluzioni e non sempre una giusta soluzione è la migliore.

    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  7. #7
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    :master: ....ritiro quanto ho appena detto...

    Ho provato lo swapDepths per la maschera ma a me non va....
    In effetti lo avevo già provato ecco perchè ho scartato quell'ipotesi...

    Anche se nel link sembra che lo slide sia mascherato correttamente...bho!!

    Cmq non pensiamoci.... la mia soluzione è la migliore
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.