ResultEvent in Object speichern [Flash 10]
| 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:| 1 | var boxservice:Object = new Object;
|
Wenn ich jetzt den Listener aufrufe übergebe ich das Result an eine weitere Funktion
ActionScript:| 1 | serviceRequest.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:45 | Re1 | Beiträge: 4883 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:08 | Re2 | 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 Mitgliedern |
|
| 03.09.2010, 07:52 | Re3 | Beiträge: 4883 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:13 | Re4 | 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:17 | Re5 | Beiträge: 4883 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:32 | Re6 | 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:26 | Re7 | Beiträge: 4883 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:38 | Re8 | 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:
| Geändert von Mediadesigner am 12.09.10 um 00:39 Uhr
| |
|
| 13.09.2010, 09:17 | Re9 | Beiträge: 4883 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:43 | Re10 | 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:| 1 | var request:Object = new Object;
|
und dann innerhalb der Funktion so:
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 | 30.05.2011 - plitschy 29.08.2010 - Mediadesigner 27.07.2010 - gobblin 31.10.2009 - mal2000b |
|
Flashhilfe.de Flash Platform Tipps & Tutorials Flash Platform Andere Programmiersprachen Jobangebote Diskussionen
Flashhilfe News 
31.01.12, 12:30#Jobs Wir suchen (freiberufliche) Flash Developer (m/w) in Köln/Aachen http://t.co/4WPsXPOA 20.01.12, 21:02#Jobs Flash-Projekt Produktkonfigurator http://t.co/qPlGSiPd 12.01.12, 18:50#Jobs Flash Freelancer für ca. 2 Wochen in München gesucht http://t.co/XpMJr5dv 10.01.12, 10:45#PureMVC vs #RobotLegs Performance Battle. PureMVC is significantly faster than RobotLegs in nearly every respect. http://t.co/324gWRAr 06.01.12, 21:37#Jobs Flash Developer in Hamburg gesucht http://t.co/hZgTZvHJ
Regeln & Bedingungen
|