1&1 DSL
Flashhilfe.de - Flash Community

ResultEvent in Object speichern [Flash 10]

Forum > Apache Flex / Adobe AIR > ResultEvent in Object speichern

 


AntwortenRegistrieren Seite1  

 02.09.2010, 18:30 
Beiträge: 40
Registriert: Aug 2010

ResultEvent in Object speichern
Hallo zusammen,

ich möchte Daten von einem URL Request, die ich durch HTTPService bekommen habe, gerne zwischenspeichern da ich mehrfach auf das selbe Objekt zurück greifen möchte.

Hinter den Daten die von einer Setopbox kommen verbirgt sich eine XML.

Jetzt hab ich erstmal versucht eine Variable außerhalb aller Funktionen zu erzeugen und zwar als Object.

ActionScript:
1var boxservice:Object = new Object;


Wenn ich jetzt den Listener aufrufe übergebe ich das Result an eine weitere Funktion

ActionScript:
1serviceRequest.addEventListener(ResultEvent.RESULT, setObject);


Die Funktion setObject ist dann eine reine Zuweisung

ActionScript:
1
2
3
4
function setObject(event:ResultEvent):void{
           boxservice = event;
           trace(event);
       }


Will ich aber jetzt Elemente auslesen fliegt mir das Programm um die Ohren weil er, so denke ich nicht Teile des Objects auslesen kann.

Die Auslesefunktion hat beim reinen Übergeben des Events prima geklappt, aber jetzt leider nicht mehr.

Jmd einen Tip in was ich das Event speichern kann um es später auszulesen, XML hat nicht wirklich funktioniert und das ganze direkt als ResultEvent anzulegen geht auch nicht, da dem Object ein Argument übergeben werden muss.
 02.09.2010, 20:45Re1
Benutzerbild von springerFlashhilfe.de Moderator
Beiträge: 4906
Wohnort: zuhaus
Registriert: Apr 2004

hi,
schon mal so versucht?
PHP:
1
2
<mx:HTTPService resultFormat="e4x" result="resultHandler( event )"/>

ActionScript:
1
2
3
4
5
var xmldata:XML;

private function resultHandler( event:ResultEvent ):void{
         xmldata = event.result as XML;
}


oder sonst mal so:
ActionScript:
1
2
3
private function resultHandler( event:ResultEvent ):void{
         xmldata = new XML( event.result.toString() );
}
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
Geändert von springer am 02.09.10 um 20:46 Uhr

 02.09.2010, 21:08Re2
Beiträge: 40
Registriert: Aug 2010

Themenautor/in

Habs jetzt mal so gemacht:

ActionScript:
1
2
3
4
function bouquetList(event:ResultEvent):void {
  var xmldata = new XML(event.result.toString());
              trace(xmldata);
              for each (var i:String in xmldata.bouquets.bouquet) {


Sprich ich bin den Umweg über xmldata gegangen jedoch zeigt er mir nicht die Inhalte der XML Verzeichnisstruktur an. Anders gesagt er zeigt gar nichts an. Im trace gibt er logischerweise [Object Object] aus.
 
nicht sichtbar bei eingeloggten Mitgliedern1&1 Webhosting
 03.09.2010, 07:52Re3
Benutzerbild von springerFlashhilfe.de Moderator
Beiträge: 4906
Wohnort: zuhaus
Registriert: Apr 2004

wie sieht die xml aus?

was gibt das aus?

ActionScript:
1
2
3
function bouquetList(event:ResultEvent):void {
    trace( event.result.toString() )
}



wenn du xmldata in der funktion deklarierst, ist xmldata auch nur dort gültig... deklariere wie oben beschrieben xmldata ausserhalb der funktion...
ActionScript:
1
2
3
function bouquetList(event:ResultEvent):void {
    var xmldata = new XML(event.result.toString()); // <- ist nur innerhalb bouquetList gültig...
  ....
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
 03.09.2010, 09:13Re4
Beiträge: 40
Registriert: Aug 2010

Themenautor/in

Im trace gibt er mir nur Object Object zurück und keine XML Sturktur. Geh ich aber mit dem Debugger durch kann ich mir event und result angucken das funktioniert. Ne XML gibt er mir im Browser zurück. Geb ich den Link so ein kommt ne XML die ich auch so speichern kann. Warum der das in AS nicht kann weiß ich nicht.

Ich weiß die Zeile muss außerhalb der Klammer stehen, hatte ich jetzt nur testweise gemacht, steht auch mittlerweile draußen aber leider kann ich nach der Zuweisung immer noch nicht darauf zugereifen wie ich es direkt tun könnte.
 03.09.2010, 13:17Re5
Benutzerbild von springerFlashhilfe.de Moderator
Beiträge: 4906
Wohnort: zuhaus
Registriert: Apr 2004

dann schick mal den link zur xml, bzw. zum httpservice, dann kann man das auch testen. oder am besten gleich eine test-applikation...

sonst kann man hier nur raten ;-)
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
Geändert von springer am 03.09.10 um 13:17 Uhr

 
nicht sichtbar bei eingeloggten Mitgliedern
 05.09.2010, 14:32Re6
Beiträge: 40
Registriert: Aug 2010

Themenautor/in

Sorry war am WE arbeiten und konnte daher erst jetzt antworten.

Eine Testapp kann ich dir schicken nur wird sie dir nicht viel nutzen weil ich zu Hause auf meinen Receiver zugreife, der die XML zurück gibt. Heißt selbst wenn du die App hast kannst du damit nichts anfangen. Ich kann dir Screenshots vom Debugger od. ähnlichem geben, aber alles andere würde dir nichts bringen. Code kannst du natürlich auch haben aber der steht ja oben.
 10.09.2010, 20:26Re7
Benutzerbild von springerFlashhilfe.de Moderator
Beiträge: 4906
Wohnort: zuhaus
Registriert: Apr 2004

du könntest ja auch die xml mal posten, dann kann man das mal testen... vielleicht ist ja die xml fehlerhaft... ;-)
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
 12.09.2010, 00:38Re8
Beiträge: 40
Registriert: Aug 2010

Themenautor/in

Hier ist die XML

Denke kaum das sie fehlerhaft ist, aber ich würd mich freuen wenn nur das der Fehler wäre.

Gruß und Danke

Angehängte Dateien:
Komprimierte Datei services.zip1.78 KB
Geändert von Mediadesigner am 12.09.10 um 00:39 Uhr

 13.09.2010, 09:17Re9
Benutzerbild von springerFlashhilfe.de Moderator
Beiträge: 4906
Wohnort: zuhaus
Registriert: Apr 2004

bei mir gehts so...

ActionScript:
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
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600" creationComplete="init(event)">
   <mx:Script>
      <![CDATA[
         import mx.events.FlexEvent;
         import mx.rpc.events.ResultEvent;
         
         private var xmlData:XML;
         
         private function resultHandler(event:ResultEvent):void{
              xmlData = new XML( event.result );
              
              for( var i:uint = 0; i < xmlData.bouquet.length(); i++){
                 var bouquet:XML = xmlData.bouquet[ i ];
                 trace("Name : ", bouquet.name )
                 for( var j:uint = 0; j < bouquet.service.length(); j++){
                    var service:XML = bouquet.service[j];
                    trace("\tService: ", service.name )
                 }
              }
              
           }

         protected function init(event:FlexEvent):void
         {
              this.service.send();
           }

      ]]>
   </mx:Script>
   <mx:HTTPService id="service" resultFormat="e4x" result="resultHandler( event )" url="services.xml"/>
</mx:Application>
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
 03.10.2010, 20:43Re10
Beiträge: 40
Registriert: Aug 2010

Themenautor/in

So nach einiger Zeit lösen sich auch Probleme wenn man mal alle Hilfen duchliest.

Wenn ein ResultEvent zurückgegeben wird ist das ein Object Typ. Wenn man also außerhalb der Funktion so macht:

ActionScript:
1var request:Object = new Object;


und dann innerhalb der Funktion so:

ActionScript:
1request = event.result;


funktioniert es auch wunderbar! Man kann dann wie oben beschrieben durch das Object navigieren als wäre es eine XML.

Danke nochmal für die Hilfe.
Geändert von Mediadesigner am 03.10.10 um 20:43 Uhr

 
Themen
Ähnliche Beiträge zum Thema
XML Rückgabe mit httpService [Flash 10] 29.08.2010 - Mediadesigner
 

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.
Partner Webseiten: DesignerInAction.de   Designnation.de   Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   PSD-Tutorials.de   Tutorials.de

Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2012 Sebastian Wichmann - Flashhilfe.de