Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [Consiglio] Gestione Spot Pubblicitari

    eccomi qua!
    devo gestire degli spazi pubblicitari all'interno di una sala bingo, tra un tempo ed un altro, ed in attesa degli inizi dei film, l'idea sarebbe quella di realizzare gli spottini e poi mandarli in "onda" tramite un portatile, ora il mio dubbio è che soluzione usare... avevo inizialmente pensato ad una soluzione avi, mpg... ecc... ma adesso mi viene da pensare che usare flash sarebbe più comodo, il discorso è che ho bisogno di una playlist quindi mi chiedevo se non fosse possibile implementare una cosa del genere in flash... o se non esiste già qualcosa a cui posso dare una sbirciatina.

    grazie a tutti.

  2. #2
    Se usare o no flash in questo caso dipende che tipo di filmati vuoi fare.
    Se fai animazioni tipo cartone animato allora ti conviene flash, ovviamente devi essere anche molto bravo a disegnare.
    Se fai filmati "girati" non ti conviene tirare in mezzo flash.

  3. #3
    potresti fare una cosa del genere:

    file principale primo frame copi e incolli questo

    codice:
    fscommand("fullscreen", true);
    Stage.scaleMode = "exactFit" 
    // BLOCCO LA ROOT; SUPERFLUO IN QUESTO CASO, UTILE SE QUESTO SWF 
    // E' ALL' INTERNO DI UNA LATRO E CARICATO
    this._lockroot = true;
    
    // CREO IL CONTENITORE CHE E' UN MOVIECLIP CON NOME ISTANZA container DI DEFAULT
    // A POSIZIONE X = 0 / Y = 0 , VISIBLE E ALPHA 100 con ROTATION 0
    this.createEmptyMovieClip( 'container', this.getNextHighestDepth() );
    
    // CREO IL GESTORE DI EVENTI, UN OGGETTO CON METODI DEDICATI
    // COME LISTENER DEL MOVIECLIPLOADER ED ALTRI UTILI AL TUO SCOPO
    var swfloader:Object = new Object();
    
    // EVENTO LISTENER: onLoadInit
    // 	Richiamato dal MovieClipLoader a MC caricato e disponibile
    //  [ esiste anche l' onLoadComplete, ma l' MC in quel caso non e' disponibile a keyframe 1 ]
    swfloader.onLoadInit = function( mc:MovieClip ):Void {
    	
    	// POSIZIONO L' SWF CARICATO AL PRIMO FRAME
    	_root['container'].gotoAndStop( 1 );
    	// LO RENDO VISIBILE
    	_root['container']._visible = true;
    	// ASSEGNO IL PATH PER RISALIRE ALL' OGGETTO
    	// swfloader QUANDO MI SERVIRA' ...
    	_root['container'].__path = this;
    
    	//_root['container']._y = Math.floor( ( Stage.height / 2 ) - ( mc._height / 2 ) );
    	// INIZIO L' ONENTERFRAME:
    	// onEnterFrame e' un loop che ha latenza 1 fotogramma
    	// questo significa che quando e' invocato non parte immediatamente
    	// looppa priam sul primo keyframe del MovieClip sulla quale viene applicato
    	// poi passa al successivo o fa quello che gli viene detto di fare
    	// Nell' onEnterFrame il riferimento di default e' THIS, ovvero il MovieClip
    	// alla quale viene applicato.
    	_root['container'].onEnterFrame = function() {
    		// se il frame di questo MC e' un frame minore del totale frames disponibili ...
    		if( this._currentframe < this._totalframes ) {
    			// vado al frame successivo , ovvero questo frame + 1
    			this.gotoAndStop( ++this._currentframe );
    		}
    		// altrimenti sono a fine frames, ergo timeline finita
    		else {
    			// in questo caso controllo che il contenitore con tutti gli MC
    			// che e' una variabile interna all' oggetto swfloader che e' il path
    			// di riferimento della variabile __path di questo MC assegnata precedentemente
    			// ... se non esiste il prossimo filmato, basato sul fatto che l' array
    			// swfloader.__container sara' giunto al termine
    			if( this.__path.__container[ this.__path.__containerNum ] == undefined ) {
    				// allora reimposto la variabile swfloader.__containerNum a 0, cosi' 
    				// da ricaricare il primo degli SWF disponibili
    				this.__path.__containerNum = 0;
    			}
    			// a questo punto sono sicuro che esistera' il valore contenuto nell' array
    			// swfloader.__container[ this.__path.__containerNum ]
    			// che per comodita' incremento di 1 per passare poi al controlo sul valore contenuto
    			// nel prossimo indice dell' array swfloader.__container
    			this.__path.loadMovie( this.__path.__container[ this.__path.__containerNum++ ] );
    			
    			// qui elimino questo onEnterFrame perche' non mi serve piu' il LOOP su questo movieClip
    			delete this.onEnterFrame;
    		}
    	}
    }
    
    // EVENTO LISTENER: onLoadProgress
    // 	Richiamato dal MovieClipLoader durante il caricamento del MovieClip
    // ci rende noti i bytes caricati e quelli totali
    swfloader.onLoadProgress = function( mc:MovieClip, bl:Number, bt:Number ):Void {
    	
    	// creo la solita perc , magari la usi ma in locale questo metodo non
    	// funzionera' mai, o meglio, non te ne accorgi, solo online servira' a qualcosa
    	var p:Number = Math.floor( ( bl / bt ) * 100 );
    	if( p != NaN && p != infinity && p > 0 ) {
    		trace( mc + ', ' + p );
    	}
    }
    
    // EVENTO LISTENER: onLoadError
    // 	Richiamato dal MovieClipLoader se e' impossibile caricare il file richiesto
    // Rende noto l' errore generato
    swfloader.onLoadError = function( mc:MovieClip, error:String ):Void {
    	trace( error );
    }
    
    // EVENTO PERSONALE, ASSEGNATO PER COMODITA': loadMovie
    // Questo evento dell' oggetto swfloader altro on fa che eliminare
    // il precedente MovieClipLoader per ricrearlo su una variabile interna
    // quale e' __ML__ , allo stesso tempo esegue l' unloadMOvie sul MovieClip
    // container della _root, probabilmente superfluo visto che un loadMovie su
    // un movieClip che ha caricato qualcosa, scarica questo qualcosa in automatico
    // ... ma imho sempre meglio fare le cose in modo ordinato
    swfloader.loadMovie = function( swf:String ):Void {
    	// metto l' MC invisibile, cosi' durante il caricamento, nell' onLoadProgress
    	// sono sicuro che se l' SWF non ha STOP(); a inizio filmato tale filmato non mi parta per
    	// i fatti suoi frame dopo frame , a seconda di cosa carica
    	_root['container']._visible = false;
    	
    	// se e' almeno la seconda volta che richiamo questo metodo __ML__ sara' definito
    	if( this.__ML__ != undefined ) {
    		// quindi scarico il MovieClip container e cancello la variabile __ML__ ....
    		_root['container'].unloadMovie();
    		delete this.__ML__;
    	}
    	// la quale viene riassegnata o creata come MovieClipLoader
    	this.__ML__ = new MovieClipLoader();
    	// per poi aggiungergli swfloader come listener, in modo da far gestire al MovieClipLoader
    	// glie eventi dedicati descritti sopra
    	this.__ML__.addListener( this );
    	// per poi dirgli cosa caricare e dove, in questo caso carica il testo contenuto
    	// in swf sul movieClip _root['container']
    	this.__ML__.loadClip( swf, _root['container'] );
    }
    
    // EVENTO PERSONALE, ASSEGNATO PER COMODITA': preload
    // Questo metodo er' l' inizializzatore di tutto sto' sistemino di caricamento files
    // altro non fara' che leggersi le informazioni sui nomi dei files che andranno a popolare
    // l' array creato per gestire il loop, inizializzare, oltre l' array, una variabile
    // numerica per controllare o sapere sempre a che punto dell' array sono e cosa devo 
    // caricare poi, tale variabile sara' swfloader.__containerNum , mentre l' array sara'
    // swfloader.__container
    swfloader.preload = function( txtFile:String ):Void {
    	
    	// creo l' oggetto LoadVars con scope interno, perche' una volta usato non mi servira' piu'
    	var __lv__:LoadVars = new LoadVars();
    	// dico a questo oggetto il path di riferimento per creare o gestire variabili appartenenti a swfloader
    	// ovviamente essendo dentro un metodo di swfloader il path di riferimento sara' THIS, riferito a se stesso
    	__lv__.__path = this;
    	// scrivo cosa fare all' onLoad
    	__lv__.onLoad = function( s:Boolean ):Void {
    		// se trovo il file ...
    		if( s == true ) {
    			// creo la variabile swfloader.__container come nuovo Array
    			this.__path.__container = new Array();
    			// mi creo una variabile convenzionale per fare il loop delle informazioni nel file di testo
    			var a:Number = 0;
    			// finche' esiste 'fileN' dove N sara' incrementato di 1 in 1 ad ogni loop di questo ciclo ...
    			while( this['file'+String(a)] != undefined ) {
    				// aggiungi all' Array swfloader.__container il nome o il testo di questa variabile
    				// this['file'+String( a )] sara' esattamente this.file0 , this.file1, etc etc
    				// per comodita' incremento la a direttamente in assegnazione
    				this.__path.__container.push( this['file'+String( a++ )] );
    			}
    			// arrivati a this.fileN , inesistente , quindi undefined, quindi usciti dal ciclo precedente ...
    			// creo la variabile numerica swfloader.__containerNum facendola partire da 0 ... poi
    			// sara' questo applicativo stesso a gestirla, incrementarla o riresettarla
    			this.__path.__containerNum = new Number( 0 );
    			
    			// bene, ho le informazioni sull' array, ho il primo elemento da caricare
    			// ... quale momento migliore per far partire il tutto ???
    			this.__path.loadMovie( this.__path.__container[ this.__path.__containerNum++ ] );
    			// per comodita' incremento di uno la variabile swfloader.__containerNum
    			// cosi' al prossimo controllo sull' array verifichero' che esista
    			// swfloader.__container[1] e non zero che gia' so di averlo usato e che quindi e' presente nell' array
    		}
    		else {
    			// impossibile caricare il file di testo
    			this.__path.onLoadError( _root, 'Impossibile caricare il file: ' + txtFile );
    		}
    	}
    	
    	// effettuo il load del file specificato in txtFile
    	__lv__.load( txtFile );
    }
    
    // avvio l' ambaradan ...
    swfloader.preload( 'file.txt' );
    poi crei il proiettore di questo file che ha solo il codice


    dopo crei file.txt che sarà composto

    codice:
    &file0=armani.swf&
    &file1=bingo.swf&
    &file2=paperino.swf&
    &file3=quellochevuoi.swf&
    non dovrai fare altro che mettere a questo punto proiettore file txt che ti farà da playlist e filmati.swf nella stessa directory e il gioco è fatto

    significa che in questo caso armani.swf bingo.swf devono essere nella stessa directory di player.exe e di file.txt

    in automatio il file leggerà tutti i filmati swf che hai da file0 in poi ne puoi mettere quanti ne vuoi basta scrivere fileNumerosequenziale e poi quando finisce i file riparte dal primo

    Consulenza aziendale a 360° http://www.gruppodg.it http://www.gruppodg.it/3d
    Realizzazione siti internet, Siti Flash, Ricerca Location per bar negozi , esercizi commerciali, sviluppo pratiche e allestimento

  4. #4
    scusa enigma... mi pare di aver seguito tutto quello che mi hai detto... ma nn mi parte...

    mmm... dove sbaglio? probabilmente quando creo il proiettore?

    questo è l'errore:

    Scena=Scena 1, Livello=Livello 1, Fotogramma=1:Linea 18: È previsto '{'
    swfloader.onLoadInit = function( mc:MovieClip ):Void {

    Scena=Scena 1, Livello=Livello 1, Fotogramma=1:Linea 64: Rilevato '}' imprevisto
    }

    ah sto usando mx.

  5. #5
    Con questo codice ti serve il 2004.

  6. #6
    scusate ho un piccolo problema, quando mando in sequenza degli swf non sento l'audio, mentre se li lancio 1 solo alla volta (senza usare il playerino di cui sopra) funziona tutto alla perfezione...

    HELP!!!

  7. #7
    up
    non ci credo che nessuno di voi guru di flash abbia la soluzione, possibile che nessuno sia in grado?

  8. #8
    in effetti qui c'era il problema dell'audio

    con questo non dovresti averne

    codice:
    MovieClip.prototype.alpha = function(aarrivo, a, b, t) { 
    /////////// 
    if ((aarrivo != "goto")&&(a != '' && a != "" && a != 0)&&(b != '' && b != "" && b != 0)) {this.k = (1/b)/a;} 
    else {if ((aarrivo != "goto")&&(a != '' && a != "" && a != 0)&&(b == '' || b == "" || b == 0)) {this.k = 1/a;} 
    else {this.k = 0.1;}} 
    if (aarrivo == "goto") {this._alpha = a;this.aarrivo = b;} 
    else {this.aarrivo = aarrivo;} 
    /////////// 
    this.da = 0; 
    this._visible=true; 
    this.t = t; 
    this.t1 = getTimer()/100; 
    this.onEnterFrame = function() { 
    this.t2 = getTimer()/100; 
    if ((this.t2 >= this.t1 + this.t) || (this.t == '' || this.t == "" || this.t == 0)) { 
    this.da = (this.aarrivo-this._alpha)*this.k; 
    if (Math.abs(this.da)>0.1) { 
    this._alpha += this.da; 
    } else { 
    this._alpha = this.aarrivo; 
    if (this._alpha == 0) {this._visible=false;} 
    delete this.onEnterFrame; 
    } 
    } 
    }; 
    }; 
    poi=0;
    maxArray=0;
    //carico da txt il numero di file che ho
    dati = new LoadVars();
    dati.path = this;
    dati.onLoad = function(){
    	maxArray = Number(this.totale);
    }
    dati.load("totale.txt");
    ///////
    setInterval(timex=function(){_root.poi++},1000)
    
    //carica
    carica = function () {
    	caricaEst = new LoadVars();
    	caricaEst.onLoad = function(success) {
    		if (success) {
    			if (_root.fileArr == undefined) {
    				_root.fileArr = new Array();
    				for (i=0; i<maxArray; i++) {
    					_root.fileArr.push(this["file"+i]);
    				}
    				trace(fileArr)
    		     caricaMovie( _root.fileArr[0])
    			}
    			
    		}
    	};
    	caricaEst.load("file.txt");//atttttttt
    };
    
    carica();//funzione caricamento
    
    //////////////
    
    caricaMovie=function(clip){
    	clipVuoto.loadMovie(clip);
    	preload(clip)
    	
    
    }
    //
    
    //////////////////////////////////////
    
    this.createEmptyMovieClip("pre",10)
    preload = function (clip) {
       _root[c]._visible = false;
        pre.onEnterFrame=function(){
    	poi=0;
    	 car = clipVuoto.getBytesLoaded();
    	 trace(car)
    	 tot = clipVuoto.getBytesTotal();
    	 perc = Math.floor((car/tot)*100);
    	 cl = setInterval(function () {
    	 if (perc == 0) {
    	 clipVuoto.loadMovie("vuoto.swf");	 
    	 }
    	 clearInterval(cl);}, 2000);
    	 if (!isNaN(perc)) {
    		 trace("Caricando..."+clip+" - "+perc+"%");
    	 }
    	 if (car==tot &&  perc == 100) {
    		trace("pippo")
    		clipVuoto._visible = true;
    		clipVuoto.alpha("goto",0,100,1);
    		delete pre.onEnterFrame	
    		verifica(clip)
    	 }
    	}
    };
    ////////////
    
    verifica = function (clip) {
        file=clip
    	temp = file.substr(-3, 3);
    	trace(temp)
    	ora = getTimer();
    	//trace("enter1")
    	
    	this.onEnterFrame = function() {
    		//trace("enter")
    		if (temp != "jpg") {
    			if (clipVuoto._currentframe<clipVuoto._totalframes ) {
    				clipVuoto._currentframe++;
    				//trace("frame " +clipVuoto._currentframe)
    			} else {
    				if (_root.fileArr[_root.part] == undefined) {
    					_root.part = 1;
    				}else{if(_root.part==maxArray-1){_root.part=0}else{_root.part++}}
    				caricaMovie(_root.fileArr[_root.part]);
    			}
    		} else {
    			trace("poi "+poi)
    			if (poi>=5) {
    				poi=0;
    				if(_root.part==maxArray-1){_root.part=0}else{_root.part++}
    				caricaMovie(_root.fileArr[_root.part]);
    							}
    		}
    	};
    };
    
    
    //
    poi sul tuo stage metti un movieclip che istanzierai clipVuoto

    poi avrai 2 txt il primo

    file.txt che sarà composto

    codice:
    &file0=vuoto.swf&
    &file1=pippo.swf&
    &file2=4.jpg&
    &file3=5.swf&
    e il secondo totale.txt dove scriverai il totale dei file che hai

    codice:
    totale=4&
    con questo potrai usare sia jpg che swf lui nel caso di una jpg la visualizza per 6 secondi nel caso di swf lo esegue

    unica prerogativa nel txt e tra i tuoi file è di mettere come file0 un swf vuoto che appunto come vedi in rosso chiamerai vuoto.swf

    ciao
    Consulenza aziendale a 360° http://www.gruppodg.it http://www.gruppodg.it/3d
    Realizzazione siti internet, Siti Flash, Ricerca Location per bar negozi , esercizi commerciali, sviluppo pratiche e allestimento

  9. #9
    ho provato con la tua soluzione, ed in effetti l'audio ora si sente, ma come mai il video è spostato in un angolo a destra e nn al centro?

  10. #10
    risolto. nn mettevo il movie clip in 0,0
    adesso però c'è una cosa da raffinare, come faccio ad essere sicuro che gli dwf che gli passo siano sempre a schermo intero e nn lascino bande bianche? o peggio ancora lascino molto spazio bianco?

    grazie e scusa, sto imparando parecchio grazie a te.

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.