[AIR] Art der Internetverbindung abfragen

Basierend auf diesem tollen Post (via Björn) ist folgende Funktion entstanden:

Den default-Parameter “*” zu verwenden macht allerdings fast nie Sinn; stattdessen benutze ich

  • “wifi” für WLAN
  • “en” für Ethernet
  • “mobile” für 3G usw

HTH

AS3: Eingebettete XML

Wer Fehler a la

identifier vor xmltagstartend erforderlich.

oder anderen kryptischen Kram bekommt, sollte die XML so einbinden:

Also: mimeType beachten, und dass die eingebettete Klasse nicht direkt auf XML gecastet wird. Außerdem ignoreWhiteSpace, das’ ja klar 🙂

AS3: Webcam-Zugriff verweigern

Wer im Auswahl-Dialog den Zugriff auf die Webcam verweigert, bekommt ein StatusEvent mit dem Code “Camera.muted”:

Konstanten dafür habe ich übrigens nicht gefunden, da bin ich für jeden Hinweis dankbar.

Achtung: Ist der Zugriff einmal abgewiesen worden, wird der Dialog nicht erneut angezeigt! Das muss man sich also selber merken, damit man im zweiten Versuch kein Camera-Objekt ohne Bild hat 🙂

AS3: CamelCase an beliebigen Trennzeichen

Tag,

wer ein einzelnes Wort camelCasen möchte, kann dies zum Beispiel so tun:

Der zweite Parameter ist hilfreich, wenn man einen String an beliebigen Trennzeichen camelCasen möchte – etwa einen Namen an Leerzeichen und Bindestrichen:

Aufruf dann z.B. so:

HTH

Actionscript: Automatisch erzeugte Versionsnummer im Kontextmenü

Für ein Projekt wollte ich irgendeine Möglichkeit haben, einer SWF ihre genaue Versionsnummer “anzusehen”. Dies sollte unbedingt automatisiert geschehen. Ich glaube mich dunkel zu erinnern, dass man mit Ant auch direkt in die AS-Klassen schreiben kann, finde das aber gerade nicht wieder… was ich aber gefunden habe basiert ebenfalls auf Ant, genauer gesagt: Auf dem “BuildNumber”-Task.

Damit liest man eine Nummer aus einer Datei (default: build.number), erhöht sie um 1, und schreibt das Ergebnis zurück. Soweit, so gut. Aber wie bekommt man das in die SWF? Mit einer Klasse, die in etwa so aussieht (ich habe es auch mit einer internal class probiert, aber nicht hinbekommen – Tipps sind willkommen!):

Diese Klasse kann man nun instantiieren und auslesen:

Eleganter: Man schreibt den Inhalt in’s Kontextmenü:

HTH

Actionscript: override vs. final vs. protected

Gegeben: Klasse A, mit Funktion

Klasse B beerbt Klasse A, Klasse C beerbt Klasse B. In Klasse B kann ich

schreiben, also “nachträglich” die Funktion auf final setzen. In Klasse C kann ich sie dann nicht mehr überschreiben – aber natürlich noch aufrufen. FYI.

Flash: tabEnabled vs. tabChildren

Weil’s neulich gerade aufkam: Wenn ein SWF den Focus hat, kann man mit Tab durch zB Eingabefelder springen. Das ist gut. Was schlecht ist: Das jeweils gewählte Eingabefeld bekommt dann so einen gelben Rahmen. Der hat vermutlich denselben Grund wie die “outline” in CSS: Die Bedienbarkeit ohne Maus zu erhöhen. Er hat aber auch denselben Nachteil: Designer mögen ihn nicht 🙂

Wer ihn entfernen will (den Rahmen, nicht den Designer), kann entweder flash.display.InteractiveObject.tabEnabled auf false setzen. Das müsste man aber für jedes Eingabefeld machen. Alternativ setzt man flash.display.DisplayObjectContainer.tabChildren auf false, und zwar auf den root-Clip.