Atila67
Jul 5 2007, 01:44 PM
Bonjour,
Dans mon dossier bin j'ai supprimer tous les fichiers... Problème je n'arrive plus à compiler mon appli.
Que dois-je faire ?
Merci
Fusion
Jul 5 2007, 01:54 PM
CITATION(Atila67 @ Jul 5 2007, 03:44 PM)

Dans mon dossier bin j'ai supprimer tous les fichiers... Problème je n'arrive plus à compiler mon appli.
S'il s'agit de Flex Builder, il a besoin des *.mxml et *.as pour compiler, pas des *.swf. Bizarre.
Redémarre un nouveau projet avec tes sources, et il devrait ne pas faire d'histoire.
Sinon... ligne de commande, mxmlc et tout le bazar, pour obtenir le swf, et tu le remets dans /bin, ni vu ni connu... mais pour en arriver là il faut que ce soit grave

. La première solution devrait être largement suffisante.
Atila67
Jul 5 2007, 02:14 PM
Je sais pas j'ai un Launch Failed
File not found:file:/C:/wamp/www/monsite/bin/monsite.html
Tonic
Jul 5 2007, 02:17 PM
CITATION(Atila67 @ Jul 5 2007, 01:44 PM)

Dans mon dossier bin j'ai supprimer tous les fichiers... Problème je n'arrive plus à compiler mon appli.
note pour la prochaine fois : ne pas supprimer les fichiers à la main, faire project->clean. Flex supprimera ce qu'il faut.
Atila67
Jul 5 2007, 02:25 PM
J'ai recréé un projet du même nom mais quand je lance l'appli, dans ma fenetre ie c'est vide...
Tonic
Jul 5 2007, 02:27 PM
Y a quoi dans les sources html?
Atila67
Jul 5 2007, 02:28 PM
Ben le code de base... Ca me lance le loading puis après plus rien d'affiché.
Fusion
Jul 5 2007, 02:30 PM
CITATION(Atila67 @ Jul 5 2007, 04:28 PM)

Ben le code de base... Ca me lance le loading puis après plus rien d'affiché.
Est-ce que l'appli utilise des fichiers XML ou d'autres ressources externes? Elle est censée afficher quoi?
Atila67
Jul 5 2007, 02:30 PM
Et dis toi tonic que j'ai fais un clean à l'instant et que mes fichiers debug.html ont disparu... Je reviens à la case départ.
Fusion
Jul 5 2007, 02:31 PM
CITATION(Atila67 @ Jul 5 2007, 04:30 PM)

Et dis toi tonic que j'ai fais un clean à l'instant et que mes fichiers debug.html ont disparu... Je reviens à la case départ.
Si tu peux et si ce n'est pas trop gros donne du code

Oui je sais je ne jure que par le code mais ça me réussit bien
Tonic
Jul 5 2007, 02:34 PM
CITATION(Atila67 @ Jul 5 2007, 02:30 PM)

Et dis toi tonic que j'ai fais un clean à l'instant et que mes fichiers debug.html ont disparu... Je reviens à la case départ.
Si tu as fais un clean (sans supprimer au préalable d'autres fichiers), et que tu ne peux plus recompiler, c'est que le problème ne vient pas de là...
Atila67
Jul 5 2007, 02:48 PM
Bon j'ai compris
Ma fonction getStatut me fait tout foirer.
Je suis dans la classe que tu m'as donné Tonic, celle de l'urlrequest.
Dans le completeHandler je traite ma chaine et je donne la valeur du statut à une chaine public. Problème je n'arrive pas à la récupérer dans mon appli pour la mettre dans une textbox.
private function completeHandler(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
trace("completeHandler: ");
var chaineretour:String = loader.data;
var indexstatut:int = chaineretour.search("statut='");
if(indexstatut>-1)
{
statut=chaineretour.substr(indexstatut+8,2);
}
}
Tonic
Jul 5 2007, 03:00 PM
1 ) soit tu passes une référence de ton application à ta classe, et tu pourras ainsi depuis cette référence avoir accès à ta textbox.
2 ) soit tu dispatches des évènements de ta classe vers ton application, pour lui dire de mettre à jour le champ.
Atila67
Jul 5 2007, 03:09 PM
CITATION(Tonic @ Jul 5 2007, 05:00 PM)

1 ) soit tu passes une référence de ton application à ta classe, et tu pourras ainsi depuis cette référence avoir accès à ta textbox.
2 ) soit tu dispatches des évènements de ta classe vers ton application, pour lui dire de mettre à jour le champ.
Pour la 1 ) je fais comment ? Enfin le truc le plus simple à faire.
Tonic
Jul 5 2007, 03:17 PM
Lorsque tu créé ton instance dans application, passe lui la référence à l'application (vu le scope ca devrait être this.
Si tu veux plus d'aide, poste le code de l'application.
Fusion
Jul 5 2007, 03:18 PM
Quand tu appelles ta classe, tu lui donnes une référence vers ton application principale (représentée par this dans ce cas).
CODE
var cTemp:MaClasse = new MaClasse();
cTemp.appelant = this;
Et puis dans ta classe, tu déclares la variable correspondante.
CODE
public class MaClasse
{
public MaClasse()
{
public var appelant:Object;
}
}
cTemp.appelant = this;
Et voilà, "appelant" est devenue une référence vers ton application, fais-en ce que tu veux
Atila67
Jul 5 2007, 03:37 PM
Je veux juste faire un txtstatut.text = statut;
CODE
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import URLRequestExample.URLRequestExample;
import flash.system.Security;
Security.allowInsecureDomain("*");
Security.allowDomain("*");
private function test():void
{
var urlr : URLRequestExample = new URLRequestExample();
urlr.appelant = this;
}
]]>
</mx:Script>
<mx:Panel width="536" height="387" layout="absolute" horizontalCenter="0" verticalCenter="10.5">
<mx:List x="10" y="104"></mx:List>
<mx:Label x="10" y="22" text="Liste"/>
<mx:Button x="180" y="104" label="Requete" click="test()"/>
<mx:Text x="237" y="78" text="Text" id="txtstatut"/>
<mx:Label x="180" y="78" text="Status :"/>
</mx:Panel>
</mx:Application>
CODE
package URLRequestExample
{
import flash.display.Sprite;
import flash.events.*;
import flash.net.*;
import flash.system.Security;
import mx.utils.StringUtil;
Security.allowInsecureDomain("*");
Security.allowDomain("*");
public class URLRequestExample extends Sprite {
public var appelant:Object;
public var statut:String = "";
public function URLRequestExample() {
var loader:URLLoader = new URLLoader();
configureListeners(loader);
var request:URLRequest = new URLRequest("http://monsite.com/index.php?compteur=1");
try {
loader.load(request);
} catch (error:Error) {
trace("Unable to load requested 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("completeHandlereeeeee: ");
var chaineretour:String = loader.data;
var indexstatut:int = chaineretour.search("status='");
if(indexstatut!=-1)
{
statut=chaineretour.substr(indexstatut+8,2);
}
txtstatut.text = statut;
trace("Statut de la connec"+statut);
}
private function openHandler(event:Event):void {
trace("openHandler: " + event);
}
private function progressHandler(event:ProgressEvent):void {
trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
}
private function securityErrorHandler(event:SecurityErrorEvent):void {
trace("securityErrorHandler: " + event);
}
private function httpStatusHandler(event:HTTPStatusEvent):void {
trace("httpStatusHandler: " + event);
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("ioErrorHandler: " + event);
}
}
}
Tonic
Jul 5 2007, 03:53 PM
avec this, tu lui passes une référence à l'application
donc dans application
CODE
var urlr : URLRequestExample = new URLRequestExample(this);
et une methode public aussi (où tu pourras avoir accès à ce que tu veux)
CODE
public function coucou():void
{
trace("coucou")
}
dans la classe
CODE
private var ap : Application;
public function URLRequestExample(_ap:Application) {
ap=_ap;
ap.coucou();
}
Atila67
Jul 5 2007, 06:40 PM
Tonic
Dans ma classe j'ai ça :
CODE
private var ap : Application;
public function URLRequestExample(_ap:Application) {
ap=_ap;
Et dans mon appli :
CODE
private function test():void
{
var urlr : URLRequestExample = new URLRequestExample(this);
}
+ la fonction coucou.
Pourquoi quand j'appelle cette fonction dans ma classe j'ai cette erreur :
1061: Appel à la méthode coucou peut-être non définie, via la référence de type static mx.core:Application.
Tonic
Jul 5 2007, 07:57 PM
Bon, j'ai reprit le problème tranquillement.
J'ai été trop vite tout à l'heure en te proposant la solution, puisque Application est une instance static.
Voici une solution :
Classe TonApplication :
CODE
package
{
import mx.core.Application;
import mx.controls.TextArea;
public class TonApplication extends Application
{
public function coucou():void
{
var ta : TextArea = this.getChildByName("ta") as TextArea;
ta.text="coucou";
}
}
}
mxml princpal :
CODE
<?xml version="1.0" encoding="utf-8"?>
<app:TonApplication
xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="init();"
xmlns:app="*"
>
<mx:Script>
<![CDATA[
import mx.controls.Alert;
private function init():void
{
var test : Test = new Test(this);
}
]]>
</mx:Script>
<mx:TextArea id="ta"/>
</app:TonApplication>
classe test qui accede au textarea :
CODE
package
{
public class Test
{
private var ap : TonApplication;
public function Test(_ap:TonApplication)
{
ap=_ap;
ap.coucou();
}
}
}
Atila67
Jul 5 2007, 08:42 PM
Merci Tonic,
Pour le ta.text j'ai une erreur : Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul.
at monApp/coucou()
Atila67
Jul 6 2007, 02:02 PM
Help Tonic
Tonic
Jul 6 2007, 02:13 PM
J'ai essayé, ca fonctionne très bien chez moi.
Tu as repprit tout mon exemple?
Tu as bien donné l'id "ta" a ton textArea?
Atila67
Jul 6 2007, 04:05 PM
Ben oui

Tu peux m'envoyer le projet s'il te plait?
Tonic
Jul 6 2007, 04:13 PM
Voilà
Atila67
Jul 6 2007, 04:33 PM
merci
Atila67
Jul 6 2007, 05:17 PM
Un dernier truc :
Pourquoi j'ai une erreur Tentative d'accès à la méthode inaccessible checkPlaylist, via la référence de type static Test.
Alors que j'ai rajouté une fonction ?
Dans mon mxml j'ai mis ça :
CODE
private function init():void
{
var lancer : Test = new Test(this);
lancer.checkPlaylist();
trace("helo");
}
et dans la classe test :
CODE
private function checkPlaylist():void
{
ap.URLRequestExample("http://monsite.com/index.php?compteur=1");
}
Tonic
Jul 6 2007, 05:23 PM
Déclare là public.
Atila67
Jul 6 2007, 05:31 PM
Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul.
sur ta.text="test";
Atila67
Jul 6 2007, 06:19 PM
C'est parce que j'ai mis le textarea dans un panel alors this.getChildByName("ta") est nul.
je dois faire comment pour y accéder?
Tonic
Jul 6 2007, 06:42 PM
Tu dois d'abord récupérer de la même de façon ton panel (avec getChildByName), puis ensuite récupérer le ta qui est sûr ce panel (avec encore une getChildbyName).
Atila67
Jul 7 2007, 11:21 AM
OK, je boucle sur mon tableau et j'ajoute ma valeur au datagrid avec compteur_dg.dataProvider[posi].Compteur= compteur;
Le truc c'est qu'il ne me remplit que la première ligne de mon datagrid. Mon posi++ marche j'ai fais un trace il avance bien et affiche la bonne valeur.
Atila67
Jul 7 2007, 06:42 PM
Bon j'ai resolu ce prob. Juste un truc quand j'ai fais une copie du dossier bin sur mon bureau. Quand je lance l'appli, je récupère bien mon xml de site web, mais par contre je n'arrive pas a charger le statut des compteurs... Alors que si je le lance dans le bin ça marche direct
Atila67
Jul 7 2007, 08:35 PM
Bon j'ai tracer mon eventHandler :
securityErrorHandler: [SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048: Violation de la sécurité Sandbox : file:///C:/Users/Azz/Desktop/bin/test2.swf ne peut pas charger de données à partir de
http://monsite.com/index.php?compteur=1...
J'ai mis tout ça :
Security.allowInsecureDomain("*");
Security.allowDomain("*");
Security.loadPolicyFile("policy.xml");
Mais rien de passe.
Atila67
Jul 7 2007, 08:42 PM
Mon appli sera en ligne et ça le fera pas si je demande aux clients de faire la manip pour mettre ce site en confiance flash...
On peut pas forcer ce truc ?
Atila67
Jul 7 2007, 08:57 PM
Roooooooolala, sur une URL
http://localhost/monsite/ J'ai une violation sandbox... C'est quoi ce délire. Il ne veut pas me laisser communiquer avec un autre site http...
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez
cliquer ici.