Archiv für die Kategorie „Srukturen“

XML-Teilelemente verarbeiten

Freitag, 17. Oktober 2008

Interessant und auch einfach kann durchaus die Bearbeitung einzelner Elemente einer XML-Struktur sein.
Wir nehmen einfach mal an, dass in einem gelieferten XML u.a. folgendes steckt


<WASWEISICHWAS />
<ART_LIST>
  <ARTIKEL>
    <ART_NAME>Testartikel</ART_NAME>
    <ART_NO>5</ART_NO>
  </ARTIKEL>
  <ARTIKEL>
    <ART_NAME>Geschenk</ART_NAME>
    <ART_NO>3</ART_NO>
  </ARTIKEL>
  <ARTIKEL>
    <ART_NAME>Raschung</ART_NAME>
    <ART_NO>10</ART_NO>
  </ARTIKEL>
</ART_LIST>

Durch

  var it:XMLList = ssData.ART_LIST.ARTIKEL;

erfolgt die “Übernahme” der Artikelliste ART_LIST in die XMLList mit der Bezeichnung “it” aus dem z.B. durch einen Datenabruf gelieferte XML-Struktur entsprechend dem oben stehenden Muster. Die Teilstruktur WASWEISICHWAS bleibt dabei unberücksichtigt.

for (var i:int = 0; i < it.length(); i++) {
    Alert.show(”T-TEST”+i.toString(),it[i].toXMLString());
    Alert.show(”X-TEST”+i.toString(),it[i].ART_NAME);
    cartView.korb_add(it[i], int(it[i].ART_NO))
}

Selbst wenn in der Funktion korb_add die erste Variable ein XML-Objekt ist, erfolgt die korrekte Konvertierung durch flex. Dieses Beispiel muß man sich natürlich zunächst verinnerlichen. Aber wenn man ein wenig Programmiererfahrungen hat, steigt man sehr schnell durch :-) — dieses Beispiel soll genau das verdeutlichen!

Speicherung von Daten

Donnerstag, 9. Oktober 2008

Für einige oder gar viele Applikationen ist es erforderlich, möglichst Daten auf dem Anwender-PC ab zu legen - ähnlich dem Cookie-Verfahren bei Browsern.
Flash bietet dafür eine komplette Klasse - das sogenannte shareObject - an, welche durch den Anwender selbst beeinfluß bar ist (über die Flash-Player-Optionen). Im Standard ist es erlaubt, spezifische Daten zu schreiben und zu lesen - das Sicherheitskonzept von Adobe ist sehr gut ausgebaut.

Die Nutzung der Klasse ist simpel und einfach und soll daher hier nur angerissen werden.

Mit:
private var _shareObject:SharedObject;
_shareObject    = SharedObject.getLocal(”beispiel”);
login_pwd.text = _shareObject.data.login_pwd;

werden die Daten aus einer ggf. vorhandenen Datei gelesen.

Geschrieben kann das Ganze z.B. wie folgt beschrieben werden:
    _shareObject.data.login_handle = 1;
    _shareObject.data.merk_name    = d_merk_name.selected;
    _shareObject.data.merk_pwd     = d_merk_pwd.selected;

 und sollte anschließend mit
    _shareObject.flush();
zwangsweise gespeichert werden, obwohl wohl das shareObject bei Schließen der Flash-Anwendung ebenfalls gespeichert wird.

Noch einfacher kann “Cookie-Arbeit” nicht sein! Es gibt zwar einige kleinere Einschränkungen hinsichtlich der Verarbeitung von Strukturen … hier sollte man sich in der Dokumentation von Flex informieren.

Event bei Focus-Änderung des Browsers

Mittwoch, 8. Oktober 2008

Manchmal besteht die Notwendigkeit, eine bestimmte Aktion aus zu führen, sobald der User z.B. das Browsers-Fenster wechselt oder zeitweise deaktiviert und dann wieder aktiviert.
Hierbei sind die folgenden Events hilfreich:

<mx:Canvas …. deactivate=”test_test(3)”  activate=”test_test(4)” … >

Interessant und logisch: Wenn diese Events in mehreren Elementen gesetzt werden, erfolgt eine Abarbeitung bei jedem Element! Desweiteren wird dieser Event auch dann abgearbeitet, wenn der Focus innerhalb des Browserfensters (z.B. durch Java) geändert wird.

Was ist eigentlich XML ?

Mittwoch, 1. Oktober 2008
Die Bedeutung, Definition und die Regeln von XML wollen und können wir hier nicht darstellen. Dazu findet man im Internet oder im Buchladen ausreichendes Material.

Altherkömmliche Programmierer machen gern um dieses Format einen großen Bogen und keiner weiß warum :-)

Frage an diese alten Programmierer:  Kennen oder können Sie HTML?
Wenn Sie diese Frage mit „Ja“ beantworten, dann können Sie vom Grundsatz her auch bereits XML ohne es wirklich zu wissen!

Wir werden diesen Abschnitt schrittweise erweitern, um so ein wenig Einblick in XML zu geben.

 

 

 

Modulübergreifender Funktionsaufruf (1)

Mittwoch, 1. Oktober 2008

Interessant ist die Strukturierung innerhalb einer Applikation. Natürlich könnte man mit mehr oder weniger Erfolg die komplette Struktur in das Main-Modul integrieren. Mal von dem Fakt abgesehen, das genau dies nicht die Politik von flex ist, würde die Sache in einer Katastrophe enden. Daher legt man verschiedene Module an. Hierzu werden wir uns nochmal in einem separaten Artikel hier im Blog äußern.

Wenn man nun solche Elemente angelegt hat, ist es oft genug erforderlich, z.B. von einem Modul aus Funktionen in anderen Modulen auf zu rufen, um so z.B. Aktionen in z.B. nicht sichtbaren Fenstern aus zu führen (z.B. Aktualisierung eines Datagrids im übergeordneten Modul).

Durch eine Möglichkeit des Flash-Players kann z.B. eine Funktion im Main-Modul aufgerufen werden:

mx.core.Application.application.funktion()

Die Funktion “funktion” muß natürlich im Main-Modul enthalten sein. Natürlich lassen sich so Parameter übergeben oder auch wieder zurück erhalten. Eine Möglichkeit, um die Datenübergabe via events zu umgehen.
Will man nun z.B. in einem SubModul der Main eine Funktion aufrufen, so ist der oben genannte Befehl einfach mit dem Namen des Moduls zu erweitern:

mx.core.Application.application.subModul.funktion()