Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    3

    Passaggio dati da Php a Flash...

    Salve a tutti,
    ho il problema di richiamare un swf al quale passare una variabile che successivamente possa essere letta da action script.
    Uso Flash CS5 e questo è il codice della pagina php che richiama il file swf:

    index.php
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Monografie virtuali</title>
    <script src="Scripts/swfobject_modified.js" type="text/javascript"></script>
    </head>
    
    <body>
    <div align="center">
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="800" 
    
    height="750" id="FlashID" title="PageFlip">
      <param name="movie" value="notebook.swf" />
      <param name="quality" value="high" />
      <param name="wmode" value="opaque" />
      <param name="swfversion" value="8.0.35.0" />
      
      <!-- Questo tag param fa in modo che agli utenti con Flash Player 6.0 r65 e 
    
    versioni successive venga richiesto di scaricare l'ultima versione di Flash 
    
    Player. Eliminarlo se non si vuole visualizzare la richiesta agli utenti. -->
      <param name="expressinstall" value="Scripts/expressInstall.swf" />
      <!-- Il tag object successivo è per i browser diversi da IE. Utilizzare IECC 
    
    per nasconderlo in IE. -->
      
      <object type="application/x-shockwave-flash" data="notebook.swf" width="800" 
    
    height="750">
        
        <param name="quality" value="high" />
        <param name="wmode" value="opaque" />
        <param name="swfversion" value="8.0.35.0" />
        <param name="expressinstall" value="Scripts/expressInstall.swf" />
        
        <!-- Il browser visualizza il seguente contenuto alternativo per gli utenti 
    
    che utilizzano Flash Player 6.0 e versioni precedenti. -->
        <div>
          <h4>Il contenuto di questa pagina richiede una nuova versione di Adobe 
    
    Flash Player.</h4>
          
    
    </p>
        </div>
        
      </object>
      
    </object>
    <script type="text/javascript">
    <!--
    swfobject.registerObject("FlashID");
    //-->
    </script>
    </div>
    </body>
    </html>
    Da questo codice php dovrei passare la variabile con il nome del file da aprire.

    Questo è il codice action script richiamato:

    notebook.swf
    codice:
    import flash.geom.ColorTransform;
    import flash.geom.Transform;
    //Stage.scaleMode = "noScale";
    
    var maxSize:Number = 290; //the maximum width or height for the photos
    
    //no need to edit this unless you know what you are doing
    attachMovie("book", "Book", this.getNextHighestDepth());
    Book._x = 146; Book._y = 90;
    Book._xscale = Book._yscale = 90;
    Book.gotoAndStop(26);
    
    attachMovie("page","Page", this.getNextHighestDepth());
    Page._x = 440; Page._y = 438;
    
    attachMovie("cap", "Cap", this.getNextHighestDepth());
    Cap._x = 342; Cap._y = 410;
    
    var colorTrans:ColorTransform = new ColorTransform();
    var hxy:Number = 0;
    
    var Holder:MovieClip = createEmptyMovieClip("Holder", this.getNextHighestDepth
    
    ());
    var Frame:MovieClip = createEmptyMovieClip("Frame", this.getNextHighestDepth
    
    ());
    var mcLoader:MovieClipLoader = new MovieClipLoader();
    var loadListener:Object = new Object();
    var This:MovieClip = this;
    var trans:Transform = new Transform(Holder);
    var transFrame:Transform = new Transform(Frame);
    var transPage:Transform = new Transform(Page);
    var transCap:Transform = new Transform(Cap);
    
    if (maxSize < 350) hxy = 175 - maxSize/2 ;
    Holder._x = 164 + hxy; Holder._y = 100 + hxy;
    
    drawFrame = function ():Void {
    		Frame.lineStyle(1, 0x888888);
    		Frame.moveTo(Holder._x,Holder._y);
    		Frame.lineTo(Holder._x+Holder._width, Holder._y);
    		Frame.lineTo(Holder._x+Holder._width, Holder._height
    
    +Holder._y);
    		Frame.lineTo(Holder._x, Holder._y + Holder._height);
    		Frame.lineTo(Holder._x,Holder._y);
    }
    
    var x:XML = new XML();
    x.ignoreWhite = true;
    
    var urls:Array = new Array();
    var captions:Array = new Array();
    var whoIsOn:Number;
    
    x.onLoad = function () {
    	var photos:Array = this.firstChild.childNodes;
    	for (i=0;i<photos.length;i++) {
    		urls.push((_root.folderPath?_root.folderPath:"") + photos
    
    [i].attributes.url);
    		captions.push(photos[i].attributes.caption);
    	}
    	whoIsOn = 0;
    	loadListener.onLoadStart = function ():Void {
    		attachMovie("preloader", "Preloader", This.getNextHighestDepth
    
    ());
    		Preloader._x = 339; Preloader._y = 275;
    		Page.counter.text = "Pagina "+(whoIsOn+1)+" di "+photos.length;
    		Cap.capcont.text = captions[whoIsOn];
    		var transPreloader:Transform = new Transform(Preloader);
    		timer = 0;
    		
    
    colorTrans.blueOffset=colorTrans.greenOffset=colorTrans.redOffset=255;
    		colorTrans.alphaOffset = -255;
    		trans.colorTransform = transFrame.colorTransform = 
    
    transPage.colorTransform =
    		transCap.colorTransform = transPreloader.colorTransform = 
    
    colorTrans;
    		Holder.onEnterFrame = function () {
    			if (timer > 5) {
    				colorTrans.alphaOffset = 0;
    				colorTrans.blueOffset = colorTrans.greenOffset 
    
    = colorTrans.redOffset -= 40;
    				trans.colorTransform = 
    
    transFrame.colorTransform = transPage.colorTransform =
    				transCap.colorTransform = 
    
    transPreloader.colorTransform = colorTrans;
    			}
    			else timer++;
    			if (colorTrans.blueOffset < 0) {
    				colorTrans.blueOffset = colorTrans.greenOffset 
    
    = colorTrans.redOffset = 0;
    				trans.colorTransform = 
    
    transFrame.colorTransform = transPage.colorTransform =
    				transCap.colorTransform = 
    
    transPreloader.colorTransform = colorTrans;
    				timer = 0;
    				delete this.onEnterFrame;
    				
    			}
    		}
    	}
    	loadListener.onLoadComplete = function ():Void {
    		removeMovieClip(Preloader);		
    	}
    	loadListener.onLoadProgress = function(target:MovieClip, 
    
    bytesLoaded:Number, bytesTotal:Number):Void {
    	    percent = Math.ceil(bytesLoaded/bytesTotal*100);
    		Preloader.gotoAndStop(percent);
    	}	
    	
    	loadListener.onLoadInit = function() {
    		raport = Holder._width / Holder._height;
    		if ((Holder._width > maxSize) || (Holder._height > maxSize)){
    			if (raport > 1) {
    				Holder._width = maxSize;
    				Holder._height = maxSize/raport;
    				Holder._y += maxSize/2 - Holder._height/2-20;
    				drawFrame();
    			}
    			else if (raport < 1) {
    				Holder._width = maxSize*raport;
    				Holder._height = maxSize;
    				Holder._x += maxSize/2 - Holder._width/2;
    				Holder._y -=20;
    				drawFrame();
    			}
    			else if (raport == 1) {
    				Holder._width = Holder._height = maxSize;
    				Holder._y -=20;
    				drawFrame();
    			}
    		}
    		else {
    			Holder._x += maxSize/2 - Holder._width/2;
    			Holder._y += maxSize/2 - Holder._height/2;
    		}
    	}
    	mcLoader.addListener(loadListener);
    	mcLoader.loadClip(urls[whoIsOn], Holder);
    	Book.onRelease = function () {
    		this.gotoAndPlay(1);
    		if (whoIsOn<photos.length-1) whoIsOn++;
    		else whoIsOn = 0;
    		Holder.onEnterFrame = function () {
    			if (colorTrans.blueOffset < 255) {
    			colorTrans.blueOffset = colorTrans.greenOffset = 
    
    colorTrans.redOffset += 80;
    			colorTrans.alphaOffset -=50;
    			trans.colorTransform = transFrame.colorTransform = 
    
    transPage.colorTransform = transCap.colorTransform = colorTrans;
    			}
    			else {
    				delete this.onEnterFrame;
    				removeMovieClip(Holder);
    				removeMovieClip(Frame);				
    				var Holder:MovieClip = createEmptyMovieClip
    
    ("Holder", This.getNextHighestDepth());
    				var Frame:MovieClip = createEmptyMovieClip
    
    ("Frame", This.getNextHighestDepth());
    				Holder._y = 100+hxy; Holder._x = 164+hxy;
    				mcLoader.loadClip(urls[whoIsOn], Holder);
    			}
    		}
    		
    				
    	}
    }
    
    x.load((_root.folderPath?_root.folderPath:"") + "notebook.xml");
    proprio nell'ultima riga c'è il nome del file xml che dovrebbe essere aperto.
    Dovrei fare in modo che "notebook.xml" sia una variabile passata dal file index.php.
    Cioè dal file index.php gli passo una variabile tipo $nome_file e su action script ricavo la variabile e la inserisco nell'ultima riga.

    Grazie

  2. #2
    codice:
    <param name="movie" value="notebook.swf?var=notebook.xml" />
    in flash ora hai la variabile _root.var che vale notebook.xml

    poi scrivi :

    codice:
    x.load((_root.folderPath?_root.folderPath:"") + _root.var);
    beta

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    3
    Ciao e grazie per la risposta...
    Ho inserito le modifiche suggerite, ma in fase di compilazione, mi viene segnalato questo errore:

    codice:
    Symbol=notebook_container, layer=actions, frame=1, Line 149	Expected a field name after '.' operator.
    La linea 149 corrisponde a quella modificata ed è questa:
    codice:
    x.load((_root.folderPath?_root.folderPath:"") + _root.var);
    Come posso risolvere?

  4. #4
    scusami, involontariamente ho usato un nome variabile riservato...


    fai così :

    codice:
    <param name="movie" value="notebook.swf?tua_var=notebook.xml" />
    e poi :

    codice:
    x.load((_root.folderPath?_root.folderPath:"") + _root.tua_var);
    beta

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    3
    Ora funziona perfettamente !
    grazie mille per l'aiuto velocissimo e puntuale.

    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.