Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [AS 3] full screen, align e no scale in un proiettore

    ciao mi servirebbe che un proiettore sia mac che pc di un fla scritto in as3 partisse in full screen, senza scalare il contenuto, e centrato.

    o creato una classe chiamata projectorMode.as
    che importo, successivamente, nella mia classe principale

    in projectorMode.as ho scritto.

    codice:
    import flash.display.StageDisplayState;
    import flash.display.StageScaleMode;
    import flash.display.StageAlign;
    
    stage.displayState = StageDisplayState.FULL_SCREEN;
    stage.scaleMode = StageScaleMode.NO_SCALE;
    stage.align = StageAlign.CENTER_CENTER;
    non fa nulla, nè il full screen, nè il no scale...ecc.
    dove sbaglio?
    grazie 1000 in anticipo.
    mondini multimedia blog - grafica, web design, 3d

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Sbagli per come scrivi la classe, concettualmente quella non lo è, una classe va inserita in un package, va dichiarata come classe con lo stesso nome del file che la contiene, va di solito inserito un "costruttore" che è una funzione che porta lo stesso nome della classe e poi va dichiarata nel filmato per essere usata.

    Ah inoltre entrando nel dettaglio della classe, solo le classi visuali che vengono "visualizzate" hanno la possibilità di accedere alla proprietà "stage" altrimenti otterresti un errore anche se la classe fosse scritta correttamente.

    Ancora una cosa, non hai specificato come importi quella classe nella tua principale. E' importante saperlo anche per rendersi conto nel caso come sarebbe meglio correggerla per farla funzionare.

    In finale ti consiglio di scrivere quelle poche righe direttamente sulla tua classe principale, non ti serve a nulla complicarti la vita per quel codice, salvo che non ci siano ragioni di progettazione specifiche per la scelta.

  3. #3
    grazie 1000 per la chiarezza della spiegazione

    il problema è che sto imparando da pochi giorni as3 e alcune logiche mi sfuggono, anche perchè sono un designer e cerco progressivamente (ma lentamente) di migliorare dal lato della programmazione

    in effetti inserendo lo script nella classe principale funziona perfettamente. ho faticato un pò per trovare in quale funzione andasse inserito ma ora è a posto.
    il fatto è che per imparare sto cercando di personalizzare anche da script e classi già fatte per cercare di capirne la logica. anche perchè lo spirito della scrittura orientata a gli oggetti è un pò anche questo: permettere un più facile riutilizzo di parti di codice già scritte.

    ora, se è possibile, vorrei comuque capire come avrei dovuto scrivere il codice per creare la mia classe...
    anche se in effetti capisco che per una cosa così semplice creare una classe apposita è inutile.

    però magari può comq essere utile per capire...
    dunque nella mia classe principale avevo questo package...

    codice:
    package com.massiveProCreation.flipbook
    {
    	// IMPORTS
    	import caurina.transitions.*;
    	
    	import com.massiveProCreation.events.*;
    	import com.massiveProCreation.flipbook.sound.*;
    	import com.massiveProCreation.flipbook.ui.*;
    	import com.massiveProCreation.utils.loaders.XMLLoaderImproved
            ...
    io ho provato ad aggiungere la mia classe qui

    import com.massiveProCreation.utils.projectorMode;

    però da quel che ho capito in projectorMode... mi manca il costruttore della classe stessa...
    potresti farmi un esempio di come andrebbe scritta?

    inoltre il problema dell'accesso alla classe stage, come lo potrei risolvere? dal momento che in effetti questa classe non ha oggetti che vengono istanziati sulla stage.

    grazie infinite...
    sono consigli preziosissimi per iniziare a capire
    mondini multimedia blog - grafica, web design, 3d

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Codice PHP:
    // dichiari il package, se si trova nella stessa cartella del fla non bisogna indicarlo, se invece come nel tuo caso 
    // la classe dovesse trovarsi in una cartella diversa (ad esempio in quella cartella "utils" che menzioni nel tuo codice)
    // devi impostare il percorso usando i punti
    package com.massiveProCreation.utils 
        public class 
    projectorMode // dichiari la creazione della classe con lo stesso nome del file che la contiene
            
    public function projectorMode ():void // dichiari il costruttore, che è una funzione con lo stesso nome della classe
            
            
    }
        }

    Per il passaggio di "stage", potresti farlo direttamente sul costruttore come parametro.
    Rifacendoci al tuo codice iniziale avremo:

    Codice PHP:
    package com.massiveProCreation.utils {
        
    import flash.display.Stage;
        
    import flash.display.StageDisplayState;
        
    import flash.display.StageScaleMode;
        
    import flash.display.StageAlign;
        public class 
    projectorMode {
            public function 
    projectorMode (stage:Stage):void {
                    
    stage.displayState StageDisplayState.FULL_SCREEN;
                    
    stage.scaleMode StageScaleMode.NO_SCALE;
                    
    stage.align StageAlign.CENTER_CENTER;
            }
        }


  5. #5
    fantastico! chiarissimo al 100%.
    grazie 1000. concettualmente credevo di aver capito, leggendo i manuali di as3, ma per capire fino in fondo, come al solito, ci vogliono un pò di esempi pratici come questo.

    grazie ancora!
    mondini multimedia blog - grafica, web design, 3d

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.