Flash CS3

Free tutorials and scripts for all

Sometimes members don't get their activation email.
This happens because it gets deleted by accident, your spam folder gets it ... lots of reasons.
To Resend the account activation code you need to do two things:
1. Go here: Resend your activation email
2. Enter the email address you used when you signed up and click "Email activation codes"
3. When the email arrives in your inbox, be sure to click the link to activate your account.

Flash CS3 e PHP

This is a discussion on Flash CS3 e PHP within the Articoli e tutorials forums, part of the Flash CS3 e Actionscript 3.0 category; Eccoci ad un argomento molto interessante, non che gli altri già visti non lo siano ma in questo caso facciamo ...


Go Back   Forum Flash CS3 > Flash CS3 e Actionscript 3.0 > Articoli e tutorials

Register Blogs FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 19-09-07, 14:32
Flep's Avatar
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,229
Blog Entries: 1
Rep Power: 5
Flep is on a distinguished road
Flash CS3 e PHP

Eccoci ad un argomento molto interessante, non che gli altri già visti non lo siano ma in questo caso facciamo comunicare Flash CS3 con il server.
Le cose che sono cambiate per inviare/ricevere variabili da scripts lato server non sono poche.
Inizio col dichiarare che la classe AS2 LoadVars è stata rimossa e non si utilizza più con AS3.

Ecco un esempio di come agire con Actionscript 3.0...

Creo un FLA e salvo con nome ' load_vars.fla ' .
Creo la Document Class, un file AS che salvo con nome ' ExLoadVars.as ' , così implementata:
Code:
package
{
	import flash.display.MovieClip;
	import flash.net.URLLoader;
	import flash.net.URLVariables;
	import flash.net.URLRequest;
	import flash.net.URLRequestMethod;
	import flash.net.URLLoaderDataFormat;
	import flash.text.TextField;
	import flash.display.SimpleButton;
	import flash.events.*;
	
	public class ExLoadVars extends MovieClip
	{
		public function ExLoadVars()
		{
			addButtonListener();
		}
		
		private function addButtonListener():void
		{
			board_mc.invia_btn.addEventListener(MouseEvent.MOUSE_DOWN,inviaDati);
		}
		
		private function addListeners(d:IEventDispatcher):void
		{
			d.addEventListener(Event.OPEN,inizio);
			d.addEventListener(ProgressEvent.PROGRESS,inProgresso);
			d.addEventListener(Event.COMPLETE,completato);
			d.addEventListener(SecurityErrorEvent.SECURITY_ERROR,securityError);
			d.addEventListener(HTTPStatusEvent.HTTP_STATUS,httpStatus);
			d.addEventListener(IOErrorEvent.IO_ERROR,ioError);
		}
		
		private function inizio(e:Event):void 
		{
			debug_txt.appendText('script chiamato: duplicanumero.php\n');
			debug_txt.appendText('inizio: \n');
		}
		
		private function inProgresso(e:ProgressEvent):void 
		{
			debug_txt.appendText('percentuale caricata: '+e.bytesLoaded+' totale: '+e.bytesTotal+'\n');
		}
		
		private function completato(e:Event):void
		{
			var loader:URLLoader=URLLoader(e.target);
			debug_txt.appendText('completato: '+loader.data+'\n');
			
			var vars:URLVariables=new URLVariables(loader.data);
			board_mc.answer_txt.text=(vars.answer).toString();
			debug_txt.appendText('La risposta è '+vars.answer+'\n');
		}
		
		private function securityError(e:SecurityErrorEvent):void 
		{
			debug_txt.appendText('errore sicurezza: '+e+'\n');
		}
		
		private function httpStatus(e:HTTPStatusEvent):void 
		{
			//debug_txt.appendText('errore HTTP: '+e+'\n');
		}
		
		private function ioError(e:IOErrorEvent):void 
		{
			debug_txt.appendText('Errore in invio/caricamento: '+e+'\n');
		}
		
		private function inviaDati(m:MouseEvent):void
		{
			debug_txt.text='';
			var NumeroInserito:Number=Number(board_mc.insert_txt.text);
			var variables:URLVariables=new URLVariables('numero='+NumeroInserito);
			var richiesta:URLRequest=new URLRequest();
			richiesta.url='http://www.flepstudio.org/swf/duplicanumero.php';
			richiesta.method=URLRequestMethod.POST;
			richiesta.data=variables;
			var loader:URLLoader=new URLLoader();
			loader.dataFormat=URLLoaderDataFormat.VARIABLES;
			addListeners(loader);
			try 
			{
				loader.load(richiesta);
			} 
			catch (error:Error) 
			{
				trace('Unable to load richiestaed document.');
			}
		}
	}
}
Fai una prova con il mio esempio:










Lo script PHP chiamato (duplicanumero.php) è molto semplice:
PHP Code:
<?php
$num
=$_POST['numero'];
$answer=$num*2

echo (
'answer='.$answer);
?>
Analizziamo Actionscript:
Le tre funzioni ( metodi ) che interessa soffermarmi sono inviaDati(), addListeners() e completato() .

Invia dati
con AS2 eravamo abituati ad istanziare la classe LoadVars, associare delle proprietà all' istanza e inviare via POST o GET l' istanza di LoadVars.
Come detto in apertura dell' articolo, la classe LoadVars è stata rimossa per cui adesso bisogna fare in questo modo ( molto più corretto e logico di AS2 in quanto fa capire veramente cosa avviene):

creo una variabile contenuto il valore che voglio inviare allo script PHP
var NumeroInserito:Number=Number(board_mc.insert_txt.t ext);
istanzio la classe URLVariables e gli paso la variabile che contiene il valore da inviare
var variables:URLVariables=new URLVariables('numero='+NumeroInserito);
istanzio la classe URLRequest che ' prepara ' Flash dicendogli che deve inviare dei dati via http
var richiesta:URLRequest=new URLRequest();
definisco l' url della richiesta
richiesta.url='http://www.flepstudio.org/swf/duplicanumero.php';
definisco il metodo invio dati (POST in questo caso)
richiesta.method=URLRequestMethod.POST;
alla proprietà .data della variabile richiesta assegno il valore da inviare che è contenuto vella variabile ' variables '
richiesta.data=variables;
istanzio la classe URLLoader
var loader:URLLoader=new URLLoader();
dico a loader di formattare la stringa invio dei dati ( per intenderci come fosse ?numero=...)
loader.dataFormat=URLLoaderDataFormat.VARIABLES;
aggiungo i listeners necessari
addListeners(loader);
e chiamo lo script PHP
try
{
loader.load(richiesta);
}
catch (error:Error)
{
trace('impossibile caricare la richiesta');
}



addListeners
in questo metodo della classe ExLoadVars niente di nuovo, aggiungo i lisneters per ogni evento che voglio dispacciare in modo da poter monitorare la chiamata allo script PHP.

completato
questo metodo viene eseguito al momento in cui Flash ha finito di inviare/ricevere i dati in quanto un listener è in ascolto ( addListeners ), come tratto i dati restituiti dal PHP ? Così:
istanzio la classe URLLoader passandogli come parametro la proprietà .target dell'evento
var loader:URLLoader=URLLoader(e.target);
istanzio la classe URLVariables passandogli come parametro la proprietà .data di loader
var vars:URLVariables=new URLVariables(loader.data);
assegno al mio campo di testo il valore ricevuto dallo script PHP, assegnando una proprietà a vars che ha nome identico alla variabile che il PHP mi restituisce
board_mc.answer_txt.text=(vars.answer).toString();


Fico no ? ;)
Allego i files sorgente:
Attached Files
File Type: zip FlashCS3+PHP.zip (8.2 KB, 28 views)

__________________

 


I recommend: Essential Actionscript 3.0

- Non rispondo ai messaggi privati con domande tecniche. Apri una discussione sul forum !
- I do not reply technicians pvt messages. Open a thread !

Last edited by Flep; 04-06-08 at 22:25.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old 21-09-07, 17:52
Junior Member
 
Join Date: Sep 2007
Posts: 1
Rep Power: 0
chicco is on a distinguished road
ciao a tutti sno chicco! :) e di cs3 nn ne capisco niente una domanda

devo passare ad una pagina ( asp in realta, pa php e la stessa cosa ) alcune variabili..come faccio a modiicare lo script sopra riportato affinche mi invii le variabili v1 e v2?? grazie 100 a tutti!
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #3 (permalink)  
Old 21-09-07, 18:10
Flep's Avatar
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,229
Blog Entries: 1
Rep Power: 5
Flep is on a distinguished road
Ciao chicco,
nella funzione inviaDati:
Code:
var variables:URLVariables=new URLVariables();
variables.nome=v1;
variables.email=v2;
__________________

 


I recommend: Essential Actionscript 3.0

- Non rispondo ai messaggi privati con domande tecniche. Apri una discussione sul forum !
- I do not reply technicians pvt messages. Open a thread !
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #4 (permalink)  
Old 22-10-07, 18:28
Senior Member
 
Join Date: Jan 1970
Posts: 130
Rep Power: 39
nootropic.kint is on a distinguished road
Re: Flash CS3 e PHP

mhmmm
e se invece di semplicemente v1 e v2 passo un array direttamente in questo modo?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #5 (permalink)  
Old 22-10-07, 18:37
Flep's Avatar
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,229
Blog Entries: 1
Rep Power: 5
Flep is on a distinguished road
Re: Flash CS3 e PHP

Puoi passare l' Array come stringa, quindi lo passi come Array.toString();
__________________

 


I recommend: Essential Actionscript 3.0

- Non rispondo ai messaggi privati con domande tecniche. Apri una discussione sul forum !
- I do not reply technicians pvt messages. Open a thread !
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #6 (permalink)  
Old 22-10-07, 19:53
Senior Member
 
Join Date: Jan 1970
Posts: 130
Rep Power: 39
nootropic.kint is on a distinguished road
Re: Flash CS3 e PHP

perchè

togliAlert():void {
timer=new Timer(2000,1);
timer.addEventListener('timer',cancella);
timer.start();
}

?
e perchè non subito cancella?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #7 (permalink)  
Old 23-10-07, 06:09
Flep's Avatar
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,229
Blog Entries: 1
Rep Power: 5
Flep is on a distinguished road
Re: Flash CS3 e PHP

Non capisco a cosa ti riferisci
__________________

 


I recommend: Essential Actionscript 3.0

- Non rispondo ai messaggi privati con domande tecniche. Apri una discussione sul forum !
- I do not reply technicians pvt messages. Open a thread !
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #8 (permalink)  
Old 15-12-07, 15:07
Junior Member
 
Join Date: Dec 2007
Posts: 14
Rep Power: 0
lorenz82 is on a distinguished road
Re: Flash CS3 e PHP

non hai un esempio senza la document class? ma fatto direttamente sulla timeline?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #9 (permalink)  
Old 15-12-07, 15:10
Flep's Avatar
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,229
Blog Entries: 1
Rep Power: 5
Flep is on a distinguished road
Re: Flash CS3 e PHP

Basta che trasporti le stesse funzioni sulla timeline.
Togli il private e tutto gira bene
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #10 (permalink)  
Old 15-12-07, 15:44
Junior Member
 
Join Date: Dec 2007
Posts: 14
Rep Power: 0
lorenz82 is on a distinguished road
Re: Flash CS3 e PHP

ho provato ma non mi funzionava, cmq smanettando me ne sono riuscito a fare una molto leggera:

PHP Code:
//Create the URLLOader instance
var myLoader:URLLoader = new URLLoader();
//the data will come as URL-encoded variables
myLoader.dataFormat URLLoaderDataFormat.VARIABLES;
//Load using an URLRequest, even beeing local
myLoader.load(new URLRequest("http://www.flagthemoon.com/read.php"));
//onLoad handler listener
myLoader.addEventListener(Event.COMPLETEonDataLoad);
//add a listener for the complete event
function onDataLoad(evt:Event){        
prova.text evt.target.data["answer"];
var 
loader:Loader = new Loader();} 
Mi dai una mano per farla diventare ancora più light?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 21:50.


Powered by vBulletin versione 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0 RC4
Forum SiteMap