Beiträge getaggt mit flash

Flash Cache löschen

Flash hinterläßt die Dateien nicht wie gedacht im Browser-Cache, sondern in einem eigenen Cache, den man nicht einfach löschen kann. Es gibt von Adobe einen Settings Manager, der es ermöglich, diesen Cache zu verwalten und die Dateien zu löschen.
Adobe Fash Settings Manager
Tutorial: Tutorial: “How to delete your flash cache”

Noch ein Tipp von mir: Wenn nach mehrmaligem hochladen und Browser-Cache-Löschen und Flash-Cookie löschen und verzweifeln, die Flash-Animation immer noch die alte ist, dann die Url der Flash-Datei direkt in die Adresszeile schreiben (wenn man sie nicht kennt, dann Firebug zu Hilfe nehmen) und dahinter einen Get-Parameter hängen. Beispiel: main.swf?test01. Das veranlasst den Browser, die Datei neu vom Server zu Laden und nicht aus dem Cache.

Inhalt einer Fehlerantwort vom Server ausgeben

… oder handling faultevent content in flash.

Wenn man Daten aus Flash/Flex an ein PHP-Skript schickt und diese dort verarbeitet, schickt man in der Regel ein Ergebnis zurück in einem HTTP Response mit Status Code 200. Diese Antwort kann man ganz leicht ausgeben.

XML-Request anlegen:
// Request Objekt initialisieren
xmlRequest = new HTTPService();
xmlRequest.resultFormat = "e4x";
xmlRequest.method = "POST";
xmlRequest.addEventListener(ResultEvent.RESULT, requestResultHandler);
xmlRequest.addEventListener(FaultEvent.FAULT, requestFaultHandler);
xmlRequest.url = "http://www.example.com";
xmlRequest.send();

Antwort ausgeben:
public function requestResultHandler(event:ResultEvent):void
{
var returnXML:XML = event.result as XML;
}

Ein wenig schwieriger ist es mit anderen Status Codes, wie ich rausgefunden habe, werden diese vom Browser nicht an das Flash Plugin weitergeleitet, so dass es nur möglich ist, auf die Status Codes zu reagieren, nicht aber den Inhalt der Antwort auszugeben:
public function requestFaultHandler(event:FaultEvent):void
{
Alert.show("Es ist ein Fehler aufgetreten", "Fehler");
}

Quellen:
http://efreedom.com/Question/1-2299401/Actionscript-Expose-XML-Web-Service-FaultEvent-Can-Accessed
http://forums.adobe.com/thread/438755
http://blog.widget-labs.com/2007/02/15/handling-web-service-exception-in-flex-code/

Tags: , ,

Geschrieben in flash/flex | Kommentare deaktiviert für Inhalt einer Fehlerantwort vom Server ausgeben

Flash AS3: DuplicateMovieClip oder eine Clone-Funktion

Wie auf vielen Seiten im Web bereits beschrieben, sind es im Bezug auf MovieClip-Kopien zwei Dinge, die in Flash nicht funktioniert. In AS2 kann man zwar MovieClips kopieren, dann aber nicht einem anderen Parent-Objekt zuweisen. d.h. wenn die Verschachtelung wie folgt ist: A.B und ich mach eine Kopie von B mit dem Namen C, dann ist es immer noch A zugeordnet: A.B! Und es gibt keinen Weg, um das zu ändern.
In AS3 ist es einfach, den Parent eines Movie-Clips zu ändern:

a_mc.addChild(b_mc.c_mc);

Nach diesem Aufruf ist c_mc nun ein Unterobjekt von a_mc und nicht mehr von b_mc. Was in AS3 allerdings nicht so einfach ist, ist das Kopieren von MovieClips. Es gibt keine Clone-Funktion oder ähnliches. Bei meinen Recherchen bin im am Ende auf eine Seite gestoßen, die das was ich gefunden habe, ganz gut zusammenfasst: The Quest for MovieClip.clone(). Ich hatte vorhin schon die Lösung Nr.5 für mich ausgesucht: die Funktion duplicateDisplayObject. Das Beispiel funktioniert, sobald ich den Funktionsaufruf (mitsamt der Klasse) in meine Datei reinkopiert hatte, funktionierte es nicht. Der genaue Vergleich ergab, dass es wichtig ist, das zu kopierende Objekt als Klasse in Flash zu exportieren. Dazu beim Anlegen des MovieClips als Symbol oder unter Eigenschaften des Symbols in der Bibliothek den Haken bei “Für ActionScript” exportieren setzen und einen Klassennamen angeben (der allerdings keine weitere Rolle spielt). Dann klappts auch mit der Kopie.

Tags: , , ,

Geschrieben in flash/flex | Kommentare deaktiviert für Flash AS3: DuplicateMovieClip oder eine Clone-Funktion