Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di gnola
    Registrato dal
    Jun 2001
    Messaggi
    603

    Bordino su MovieClip dinamico

    Ciao a tutti...ho un problema stupidissimo ma che in realtà non riesco a risolvere....
    Ho una gallery dinamica con delle miniature che al clic aprono la foto ingrandita....
    Ora il MC delle foto grandi lo creo dinamicamente.....il problema è che dovrebbe avere un bordino colorato...ma come faccio?? Le foto hanno diverse dimensioni e in base a quelle si posizionano al centro dello stage...quindi ognuna ha coordinate diverse....come faccio?? Non ho proprio idea....
    Devo utilizzare un codice tipo questo?

    mc.beginFill(0x0000FF, 30);
    mc.lineStyle(5, 0xFF00FF, 100);
    mc.moveTo(200, 200);
    mc.lineTo(300, 300);
    mc.lineTo(100, 300);
    mc.lineTo(200, 200);
    mc.endFill();

    Ma con quali valori??? Non ho capito bene il meccanismo...

  2. #2

  3. #3
    Utente di HTML.it L'avatar di gnola
    Registrato dal
    Jun 2001
    Messaggi
    603
    Grazie..infatti l'avevo appena trovato...l'ho letto e il funzionamento l'ho capito...ma non riesco a farlo funzionare con il mio codice della gallery....mi sono trovata tutte le coordinate...ma sembra non fare nulla...

  4. #4

  5. #5
    Utente di HTML.it L'avatar di gnola
    Registrato dal
    Jun 2001
    Messaggi
    603
    Questo è il codice associato al pulsante che apre il MC della foto grande.


    codice:
    on (release) {
    	var mcList:Object = new Object();
    	var mcLoad:MovieClipLoader = new MovieClipLoader();
    	mcList.onLoadInit = function(target){
    		target._x = (700 -target._width)/2;
    		target._y = (350-target._height)/2;	
    	}
    
    
    	yarrivo=target._y+_root.container.fotobig._height;
    	xarrivo=target._x+_root.container.fotobig._width;
    
    var fotobig:MovieClip = _root.container.createEmptyMovieClip("fotobig", 1, 0, 0, 0, 0);
    
        with(_root.container.fotobig){
        lineStyle(2,0x000000,100);
        moveTo(target._x,target._y);
        lineTo(xarrivo,target._y);
        lineTo(xarrivo,yarrivo);
        lineTo(target._x,yarrivo);
        lineTo(target._x,target._y);
    }
    	mcLoad.addListener(mcList);
    	mcLoad.loadClip("img/gallery/dettagli/foto1_big.jpg", _root.container.fotobig);
    	
    }

    Con il comando trace ho notato che non mi vede le coordinate x y

  6. #6
    Originariamente inviato da gnola
    ....
    ....
    var fotobig:MovieClip = _root.container.createEmptyMovieClip("fotobig", 1, 0, 0, 0, 0);

    with(_root.container.fotobig){
    lineStyle(2,0x000000,100);
    moveTo(target._x,target._y);
    lineTo(xarrivo,target._y);
    lineTo(xarrivo,yarrivo);
    lineTo(target._x,yarrivo);
    lineTo(target._x,target._y);
    }
    mcLoad.addListener(mcList);
    mcLoad.loadClip("img/gallery/dettagli/foto1_big.jpg", _root.container.fotobig);

    }

    [/code]
    ...
    Le istruzioni che ho evidenziato in rosso vanno in conflitto
    In particolare il problema è che tu cerchi di mettere nello stesso movieclip (fotobig)
    sia la cornice che la foto caricata dall'esterno.
    Purtroppo il load movie è distruttivo

    Crea un altro mc per disegnargli la cornice dentro.

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    gnola, mi pare di avertelo scritto già altre volte... quando carichi un elemento esterno in un movieclip, tutto quello che "era" e aveva associato il movieclip viene eliminato e non esiste più...

    con quel codice in pratica tu, prima crei il bordo, ma poi quando carichi l'immagine, lo elimini

    ovviare al problema è facile... si tratterebbe di nidificare due clip dentro "fotobig", uno che carichi realmente l'immagine e l'altro per disegnarci dentro il bordo

    inoltre è normale che non ti veda _x e _y in quella parte di codice, target lì non esiste e non significa nulla, esiste solo all'interno della funzione inizializzata poco prima, onLoadInit

    il codice per disegnare il bordo è corretto ma va scritto nel posto giusto e con le azioni giuste

    codice:
    on (release) {
    	var mcList:Object = new Object();
    	var mcLoad:MovieClipLoader = new MovieClipLoader();
    	mcList.onLoadInit = function(target){
    		target._x = (700 -target._width)/2;
    		target._y = (350-target._height)/2;
    		yarrivo=target._y+_root.container.fotobig._height;
    		xarrivo=target._x+_root.container.fotobig._width;
    		with(target._parent.bordo){
    			lineStyle(2,0x000000,100);
    			moveTo(target._x,target._y);
    			lineTo(xarrivo,target._y);
    			lineTo(xarrivo,yarrivo);
    			lineTo(target._x,yarrivo);
    			lineTo(target._x,target._y);
    		}
    	}
    	mcLoad.addListener(mcList);
    	var fotobig:MovieClip = _root.container.createEmptyMovieClip("fotobig", 1); // createEmptyMovieClip accetta solo due parametri
    	fotobig.createEmptyMovieClip("dentro", 1);
    	fotobig.createEmptyMovieClip("bordo", 2);
    	mcLoad.loadClip("img/gallery/dettagli/foto1_big.jpg", fotobig.dentro);
    	
    }

  8. #8
    Utente di HTML.it L'avatar di gnola
    Registrato dal
    Jun 2001
    Messaggi
    603
    Ciao and80... grazie per l'ennesimo aiuto...adesso è chiaro...giuro che non mi ricapiterà più!
    Comunque almeno il codice del bordo l'avevo capito....

    Grazie a tutti e due!

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.