getURL() est mort :)
Par DickRivers, mardi 6 décembre 2005 à 10:52 :: Flash :: #41 :: rss
Et oui getURL() est mort vive navigateToURL() et URLRequest().
AS3 nous apporte des nouveautés côté envoi de données, petite exploration de navigateToURL() et URLRequest()
AS3 nous apporte des nouveautés côté envoi de données, petite exploration de navigateToURL() et URLRequest()
Comme je disais plus haut, getURL() fais parti du passé, pour rappel getURL() nous permet de rediriger l'utilisateur vers une page, mais aussi à envoyer des variables en GET ou en POST à un script distant, un inconvénient, nous devions utiliser des clips pour stocker les variables, si getURL() était appelée à partir du scénario toutes nos variables définies sur le scénario étaient envoyées, de plus getURL() ne nous permettait pas d'envoyer des variables de manière transparente sans ouvrir de nouvelle fenêtre. Alors comment ça marche en AS3 ?
Il faut d'abord créer un objet URLRequest, qui va contenir l'url du script à atteindre par exemple, ainsi que les variables, c'est cet objet qui va transférer les données HTTP :
// objet URLRequest pour un envoi HTTP
// il est utilisé par les classes URLLoader, URLStream, et Loader
var myRequest:URLRequest = new URLRequest("http://localhost/as3URLRequest/test.php");
Une fois l'objet URLRequest crée, les variables doivent êtres stockées dans un objet URLVariables qui doit être affecté à l'une des propriétés d'URLRequest, soit postData pour un envoi en POST soit urlVariables pour un envoi en GET :
// création d'un objet URLVariables pour envoyer les données var variables:URLVariables = new URLVariables(); // création des variables dans l'objet variables URlVariables // même système que l'objet loadVars variables.userName = 18; variables.score = 18758; variables.email = "bob@ritchie.com";L'objet URLVariables est crée, je passe donc mes variables en GET ou en POST
// passage des données en POST // propriété postData de URLRequest myRequest.postData = variables; // OU passage des données en GET // propriété urlVariables de URLRequest myRequest.urlVariables = variables;Puis passage des données en ouvrant une nouvelle fenêtre, avec navigateToURL() qui prend en paramètre notre objet URLRequest puis la fenêtre
// envoi des données en ouvrant une nouvelle fenêtre navigateToURL ( myRequest, "_blank" );Ou bien de manière transparente, sans ouvrir de nouvelle fenêtre avec sendToURL()
// envoi des données de manière transparente // avec sendToURL ( myRequest ) équivalent du getURL() sendToURL ( myRequest );Voilà le code final :
package {
import flash.display.*;
import flash.util.*;
import flash.net.*;
public class ByeByegetURL extends Sprite {
public function ByeByegetURL() {
// objet URLRequest pour un envoi HTTP
// il est utilisé par les classes URLLoader, URLStream, et Loader
var myRequest:URLRequest = new URLRequest("http://localhost/as3URLRequest/test.php");
// création d'un objet URLVariables pour envoyer les données
var variables:URLVariables = new URLVariables();
// création des variables dans l'objet variables URlVariables
// même système que l'objet loadVars
variables.userName = 18;
variables.score = 18758;
variables.email = "bob@ritchie.com";
// passage des données en POST
// propriété postData de URLRequest
myRequest.postData = variables;
// passage des données en GET
// propriété urlVariables de URLRequest
//myRequest.urlVariables = variables;
// envoi des données de manière transparente
// avec sendToURL ( myRequest ) équivalent du getURL()
sendToURL ( myRequest );
// envoi des données en ouvrant une nouvelle fenêtre
//navigateToURL ( myRequest, "_blank" );
}
}
}
Commentaires
1. Le mardi 6 décembre 2005 à 13:49, par BaN
2. Le mardi 6 décembre 2005 à 14:16, par xs_stef
3. Le dimanche 21 octobre 2007 à 02:28, par mrpopo
4. Le mercredi 26 décembre 2007 à 11:19, par Sapher
Ajouter un commentaire