Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    39

    Oggetto che segue il resize dello stage nn funziona nel browser

    Salve a tutti,
    sto cercando di fare un oggetto che si muova quando si ridimensiona lo stage e si posizioni sempre nello stesso punto, nel mio caso nell'angolo in alto a destra.
    Stage=550x400
    rettangolo bianco di fondo(mc riquadro)=500x350 centrato in modo da laciare una cornice di colore diverso all'esterno di 25 px
    rettangolino rosso (mc pippo)= 50x50 posizionato nell'angolo alto a dx del riquadro bianco (x=500, y=50)

    sull'unico frame della timeline ho messo questo codice
    codice:
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;
    import flash.events.Event;
    stage.scaleMode = StageScaleMode.NO_SCALE;
    var d_x=0;//differenza x dovuta al resize dello stage
    var d_y=0;// differenza y dovuta al resize dello stage
    var w:Number;//larghezza dello stage ridimensionato
    var h:Number;//altezza dello stage ridimensionato
    
    //calcolo le dimensioni iniziali dello stage
    var wdth = stage.stageWidth;
    var hght = stage.stageHeight;
    
    //aggiungo al frame una funzione che mi posiziona l'mc pippo nella posizione che voglio
    this.addEventListener(Event.ENTER_FRAME, intro);
    
    function intro(event:Event){
    
    	pippo.x = wdth-50+d_x
    	pippo.y = hght-(hght-50+d_y);
    	};
    
    //aggiungo allo stage una funzione che quando ridimensiono lo stage calcola
    //le differenze di altezza e larghezza
    stage.addEventListener(Event.RESIZE, controllo);
    
    function controllo(event:Event){
    	//assegno alle variabili w ed h le nuove
    	//dimensioni dello stage
    	w = stage.stageWidth;
        h = stage.stageHeight;
    	//ridimensiono il rettangolo bianco
    	riquadro.width = w-50;
    	riquadro.height = h-50;
        //calcolo la differenza tra la larghezza inziale
    	//dello stage e quella attuale
    	d_x = (w-wdth)/2;
    	//calcolo la differenza tra l'altezza inziale
    	//dello stage e quella attuale
        d_y = (h-hght)/2;
    	
    };
    
    stop();

    se faccio l'anteprima da flash o apro il file swf nel player tutto funziona, se metto l'swf nel browser il tutto non funziona più!

    Dove sta l'inghippo?
    Se necessario posso allegare i files
    Grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    Come inserisci lo swf nella pagina html?

  3. #3

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    La prima stringa cambiala cosi
    codice:
    stage.align = StageAlign.TOP_LEFT;
    dalle impostazioni pubblicazione allineamento finestra
    ORIZZONTALE
    Sinistra

    VERTICALE
    Superiore

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    39
    purtroppo con quei cambiamenti non va,
    a te funziona?

    allego il file originale per poter fare delle prove
    scarica file

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    centro centro
    import flash.display.StageAlign.C

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    39
    mi sa che c'è qualche errore in import flash.display.StageAlign.C
    tu hai un esempio funzionante?

  8. #8
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465
    Ciao

    Prova così:

    Codice PHP:
    stage.addEventListener(Event.RESIZEridimensiona);

    function 
    ridimensiona(evento:Event):void
    {
        
    riquadro.25;
        
    riquadro.25;
        
    stage.align StageAlign.TOP_LEFT;
        
    stage.scaleMode StageScaleMode.NO_SCALE;

        
    riquadro.width stage.stageWidth 50;
        
    riquadro.height stage.stageHeight 50;

        
    pippo.stage.stageWidth 75;

    Il punto di registrazione del clip 'riquadro' e del clip 'pippo' in alto a sx.
    In questo modo lo stage si ridimensiona insieme al clip 'riquadro' e il clip 'pippo' rimane sempre nella stessa posizione x.
    Se invece vuoi che anche 'pippo' si ridimensioni ti basta inserirlo nel clip 'riquadro' ed eliminare il riferimento a 'pippo' nel codice.


    ciao

    P.S.: Le impostazioni di pubblicazione vanno bene così come nella foto che hai postato.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    39
    ciao
    usando il codice che mi hai scritto al solito funziona bene solo dentro flash.
    Addirittura stavolta non va bene neanche il file swf aperto col flash player, il riquadro bianco resta al centro e invece di allargarsi a coprire tutto lo stage, viene solo scalato, cosa che succede anche al quadrato rosso (che dovrebbe rimanere invece sempre delle stesse dimensioni)
    Stessa cosa se uso il browser


    ciao

  10. #10
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465
    Ciao

    Prova ad aggiungere prima della funzione:

    Codice PHP:
    stage.dispatchEvent(new Event(Event.RESIZE)); 
    Esempio



    ciao

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.