Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS3
AS3 Questions relatives à la programmation ActionScript 3 (Cours AS3)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/07/2007, 18h54   #1
Candidat au titre de Membre du Club
 
Inscription : février 2007
Messages : 51
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 51
Points : 12
Points : 12
Par défaut [AS3] URLRequest pour parler avec php, problème

Bonjours, je viens de me lancer dans l'as3 et j'éssai de récuperer un message depuis une page php. Malheuresement la seule réponse que j'obtient est un "En attente de localhost" du navigateur...

Dans mon .fla j'ai tout simplement un : mainText.text = Sentinelle.chercher(0);


Voila mon script Sentinelle.as

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package{
    import flash.events.*;
    import flash.net.*;
 
	public class Sentinelle{
 
		public static function chercher(info:int):String{
			return getPlayList();
         	}
 
		private static function getPlayList():String{
			var request:URLRequest = new URLRequest("message.php");
			var lienPhp:URLLoader = new URLLoader();
			lienPhp.load(request);
			var pagePhp = new URLVariables(lienPhp.data);
			var resultat:String = pagePhp.answer;
        		return resultat;
		}
	}
}
ainsi que ma page message.php

Code :
1
2
3
4
5
<?php
$hello = "HelloPhp";
$variable = 'answer';
echo "&".$variable."=".utf8_encode(urlencode($hello));
?>
mon .as me parait bon, d'après ce que j'ai pu voir sur d'autre script...reste que ça ne marche pas...si quelqun peut m'aider je l'en remercie.
devtroll est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/07/2007, 19h19   #2
Rédacteur/Modérateur
 
Avatar de beekeep
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 1 606
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2006
Messages : 1 606
Points : 2 234
Points : 2 234
lut,

juste au cas ou vu que t'es en local, t'a bien un serveur php ?

(on golri pas ça m'est deja arrivé !! )
beekeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/07/2007, 23h35   #3
Inactif
 
Avatar de CR_Gio
 
Inscription : septembre 2005
Messages : 1 196
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 1 196
Points : 1 201
Points : 1 201
bonsoir,

Par experience, je dirai d'essayer :
Code :
var request:URLRequest = new URLRequest("http://127.0.0.1/.../message.php");
en local
CR_Gio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2007, 10h03   #4
Candidat au titre de Membre du Club
 
Inscription : février 2007
Messages : 51
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 51
Points : 12
Points : 12
Oui oui apache est bien lancé

Euh sinon bah j'ai mis le chemin en entier mon erreur est toujours là ...enfin maintenant le message est : "En attente de 127.0.0.1 ..."

ça peut venir d'apache ??

Je suis entrain de lire la doc sur le site d'adobe et je suis tombé sur ça :

Citation:
* Le chargement de données n'est pas autorisé si le fichier SWF appelant est dans le sandbox local avec système de fichiers et que la ressource cible provient d'un sandbox de réseau.
* Le chargement de données n'est pas autorisé si le fichier SWF appelant provient d'un sandbox de réseau et que la ressource cible est locale.
Si quelqun y comprend quelques choses...moi pas vraiment. j'èspere que mon problème ne vient pas de là...
devtroll est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2007, 21h48   #5
Inactif
 
Avatar de CR_Gio
 
Inscription : septembre 2005
Messages : 1 196
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 1 196
Points : 1 201
Points : 1 201
As tu ouvert ta page en passant par apache. c'est a dire hxxp://127.0.0.1/
CR_Gio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 00h08   #6
Candidat au titre de Membre du Club
 
Inscription : février 2007
Messages : 51
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 51
Points : 12
Points : 12
He bien oui. Mais apparament c'est parceque je n'utilise pas l'évenement COMPLETE que ça ne marche pas...j'ai réussi à lire dans un fichier texte donc je pense que ça devrais marcher avec un echo de php j'ai pas retesté.

Parcontre du coup vue que j'utilise les évenement je peux plus retourner la réponse...vue que c'est du void...donc je suis de nouveau bloqué


EDIT de ce matin

Houlalala je ne sais pas quoi faire la .... je déclanche l'évènement l'event SecurityErrorEvent...plus exactement

Citation:
[SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048"]
je sens que c'est linux qui me pose des soucis de droit ...pourtant j'ai lancé du chmod 755 partout

EDIT Problème résolue

Ok ça y est tous semble marcher ! Je met donc mon script.
A noter que sur la scène sont présents trois textes dynamiques.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package {

    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.*;
    import flash.text.TextField;

    public class URLLoaderExample extends Sprite {

        public function URLLoaderExample() {

            var loader:URLLoader = new URLLoader();
            configureListeners(loader);
	    monTexte.text = "Creation de URLRequest";
            var request:URLRequest = new URLRequest("mapage.php");
            try {
                loader.load(request);
            } catch (error:Error) {
                trace("Unable to load requested document.");
		monTexte.text = "Impossible de lire le document";
            }
        }

    private function configureListeners(dispatcher:IEventDispatcher):void 
        {
            dispatcher.addEventListener(Event.COMPLETE, completeHandler);
            dispatcher.addEventListener(Event.OPEN, openHandler);
            dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
        }

        private function completeHandler(event:Event):void 
            {
             var loader:URLLoader = URLLoader(event.target);
             trace("completeHandler: " + loader.data);
             monTexte.text = "completeHandler";
             var vars:URLVariables = new URLVariables(loader.data);
	     monTexte.text = "Hello " + vars.prenom;
          }

        private function openHandler(event:Event):void 
        {
            trace("openHandler: " + event);
            monTexte.text = "openHandler";
        }

        private function progressHandler(event:ProgressEvent):void 
        {
            trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
        	monTexte.text = "On progresse";
	}

        private function securityErrorHandler(event:SecurityErrorEvent):void 
        {
            trace("securityErrorHandler: " + event);
            uneErreur.text = "SecurityError : "+event;
        }

        private function httpStatusHandler(event:HTTPStatusEvent):void {
            trace("httpStatusHandler: " + event);
       	    statuteror.text = "Status : "+event;
        }

        private function ioErrorHandler(event:IOErrorEvent):void 
        {
            trace("ioErrorHandler: " + event);
	    monTexte.text = "ioErrorHandler";
        }

    }

}
Donc bon ce code vient à la base du site d'adobe je l'ai juste appliqué à un fichier php. Il faut juste faire gaffe à ne pas mettre un '&' devant la première varriable dans le fichier php (ce qui est logique) sinon sous linux ça génère une erreur de security (ce qui est moin logique) et sous windows l'erreur vous fait comprendre que le fichier php n'est pas bon.

voila mon fichier .php

Code :
1
2
3
4
5
6
7
8
<?php
$valeur = "Hello";
$variable = 'message';
echo $variable."=".utf8_encode(urlencode($valeur));
$valeur = "damien";
$variable = 'prenom';
echo "&".$variable."=".utf8_encode(urlencode($valeur));
?>
Bon il est pas super optimisé mais il marche.
devtroll est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h16.


 
 
 
 
Partenaires

Hébergement Web