Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 29-06-2010, 08:35   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2010
Beiträge: 63
JSON Wert ändern??

Guten Morgen, könnt ihr mit weiter helfen wie ich im JSON Format in Flash einen Wert ändere. Es soll folgendes passieren:
FLASH bekommt ein JSON Objekt > ändert etwas > schickt dies an JavaScript

das weiterschicken an JS klappt, nur weiss ich nicht weiter...

Code:
// load JSON ENCODER 
import com.adobe.serialization.json.JSON;


var day1:String;
day1 = '{"Name":[{"tag":"1"},{"temp":"36"},{"blupp":"test1"}]}';

var day2:String;
day2 = '{"Name":[{"tag":"2"},{"temp":"37"},{"blupp":"test2"}]}';

var day3:String;
day3 = '{"Name":[{"tag":"3"},{"temp":"39"},{"blupp":"test3"}]}';


var obj1:Object = JSON.decode(day1);
var obj2:Object = JSON.decode(day2);
var obj3:Object = JSON.decode(day3);


btn.addEventListener(MouseEvent.CLICK, clickHandler);

function clickHandler(event:MouseEvent):void {
          // ExternalInterface.call("sendToJavaScript", input.text);
		  ExternalInterface.call("sendToJavaScript", day1);
       
}
stevus ist offline   Mit Zitat antworten
Alt 29-06-2010, 09:37   #2 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Du kannst einfach die Werte in Deinem Objekt ändern und dieses dann wieder in einen String zurückkodieren:
PHP-Code:
obj1["Name"][0]["tag"] = 5;
day1 JSON.encode(obj1); 
Ich weiß zwar nicht, was Du da genau machen möchtest, finde das JSON aber etwas zu verschachtelt. Ginge das nicht auch so?
PHP-Code:
var day1:String '{"tag":"1", "temp":"36", "blupp":"test1"}'
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (29-06-2010 um 09:42 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 29-06-2010, 11:35   #3 (permalink)
Neuer User
 
Registriert seit: Jun 2010
Beiträge: 63
super danke!

klappt soweit , wenn ich diesen String benutze und ändern möchte:

Code:
var day1:String = '{"tag":"1", "temp":"36", "blupp":"test1"}';
sollte das doch so aussehen??:

Code:
obj1[0]["tag"] = 5;
klappt irgendwie nicht
stevus ist offline   Mit Zitat antworten
Alt 29-06-2010, 12:03   #4 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Es gibt da ja keinen Array mehr, deshalb reicht:
Zitat:
obj1["tag"] = 5;
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist offline   Mit Zitat antworten
Alt 29-06-2010, 15:00   #5 (permalink)
Neuer User
 
Registriert seit: Jun 2010
Beiträge: 63
alles kla

Code:
day2 = '{"Wert1":[{"tag":"2"},{"temp":"37"},{"blupp":"test2"}]}';
habe doch die Variante benutzt. Wie adde ich in FLash dann einen neuen "Wert2" ?

sodass ich quasi , diese ausgabe erhalte

Code:
day2 = '{"Wert1":[{"tag":"2"},{"temp":"37"},{"blupp":"test2"}], "Wert2":[{"tag":"3"},{"temp":"38"},{"blupp":"test4"}]}';
Gruß

Geändert von stevus (29-06-2010 um 15:01 Uhr)
stevus ist offline   Mit Zitat antworten
Alt 29-06-2010, 15:15   #6 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Das ist doch das Tolle an JSON. Der Code steht praktisch schon da:
PHP-Code:
obj2["wert2"] = [{"tag":"3"},{"temp":"38"},{"blupp":"test4"}]; 
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist offline   Mit Zitat antworten
Alt 29-06-2010, 15:34   #7 (permalink)
Neuer User
 
Registriert seit: Jun 2010
Beiträge: 63
okay cool.

also erst decodieren > ändern > wieder codieren
stevus ist offline   Mit Zitat antworten
Alt 29-06-2010, 15:50   #8 (permalink)
Neuer User
 
Registriert seit: Jun 2010
Beiträge: 63
ein problem habe ich noch ich würde das ganze gerne an JavaScript senden.

wenn ich jedoch die abfrage für die übergabe an JavaScript auf einen anderen Button lege also nicht direkt durchführe erhalte ich einen Fehler:

Code:
1120: Zugriff auf eine nicht definierte Eigenschaft sURL.
stevus ist offline   Mit Zitat antworten
Alt 29-06-2010, 15:56   #9 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Wo deklarierst Du den sURL? Ist das vielleicht nur eine lokale Variable oder ligt in einem anderen Objekt?
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist offline   Mit Zitat antworten
Alt 05-07-2010, 10:52   #10 (permalink)
Neuer User
 
Registriert seit: Jun 2010
Beiträge: 63
Hallo,

wie gebe ich mir dann nur einen bestimmten Wert des JSONs aus?

Code:
day2 = '{"Wert1":[{"tag":"2"},{"temp":"37"},{"blupp":"test2"}], "Wert2":[{"tag":"3"},{"temp":"38"},{"blupp":"test4"}]}';
JSON "day2" "Wert2" nur "temp", nicht alles nur diesen einen Wert
stevus ist offline   Mit Zitat antworten
Alt 05-07-2010, 11:26   #11 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Genauso, wie Du Ihn setzen würdest:
PHP-Code:
traceobj2["wert2"][1]["temp"] ); 
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (05-07-2010 um 11:49 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 05-07-2010, 11:43   #12 (permalink)
Neuer User
 
Registriert seit: Jun 2010
Beiträge: 63
Code:
textfeld.text= objects;

var objects_dec:Object = JSON.decode(objects);
textfeld.text = objects_dec["Tag1"][0]["temp"];  
objects = JSON.encode(objects_dec);
wenn ich das komplette JSON ausgebe klappt es wie in zeile 1.
Jedoch bei der Ausgabe von einem Wert erhalte ich kein Ergebnis...

JSON:
Code:
{"Tag1":[{"day":"1"},{"temp":"44"},{"wert3":"warm"}]}

Geändert von stevus (05-07-2010 um 11:45 Uhr)
stevus ist offline   Mit Zitat antworten
Alt 05-07-2010, 11:49   #13 (permalink)
Neuer User
 
Registriert seit: Jun 2010
Beiträge: 63
hab den fehler es muss natürlich [1] sein und nicht null da temp an zweiter stelle steht. Vielen Dank
stevus ist offline   Mit Zitat antworten
Alt 05-07-2010, 11:50   #14 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Weil die Werte überflüssigerweise nochmal in einem Array steht, musst Du das richtige Element dieses Arrays ansprechen:
PHP-Code:
textfeld.text objects_dec["Tag1"][1]["temp"]; 
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist offline   Mit Zitat antworten
Alt 05-07-2010, 14:10   #15 (permalink)
Neuer User
 
Registriert seit: Jun 2010
Beiträge: 63
nächstes Problem:

Code:
var objects_dec:Object = JSON.decode(objects);

textfeld.text = objects_dec["Tag1"][1]["temp"];

btn_day1.y = 100 * objects_dec["Tag1"][1]["temp"];
wenn ich mir die Temperatur anzeigen lasse in einem Textfeld klappt das soweit.

Nur wenn ich den Inhalt also "temp" mal eine Zahl nehme hier "100" passiert garnichts die position von "btn_day1" ist dann 0.

liegt das am String?
stevus ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
apha wert vom button ändern mfeske Flash Einsteiger 5 20-05-2008 10:13
[ComboBox] Wert ändern fR€@k Komponenten und SmartClips 3 18-01-2008 12:11
hue wert eines fotos ändern DerHorst ActionScript 2 1 20-03-2007 22:11
Alpha wert ändern ? -+FlashMen 08+- Zusatzprodukte 4 11-10-2004 20:02
Alpha-Wert dynamisch ändern azubi-tigerente ActionScript 1 4 02-06-2003 10:48


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:49 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele