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

Alternativen für Facebook-Posts aus Actionscript

Wer mit der Facebook-API für Actionscript Posts absetzen will, kann das direkt machen:

oder als Javascript-Overlay:

oder als Pop-Up

Das data-Object beinhaltet die in den Docs unter “Publishing” beschriebenen Parameter.

Actionscript: Einen Dialog zur Webcam-Auswahl anzeigen

Die “Auswahl” der angeschlossenen Webcam, bzw. die Erkennung, ob eine Webcam angeschlossen ist, is’ immer so ‘ne Sache. Es gibt wilde Skripte mit Schleifen über Camera.names, mit Unterscheidung des Betriebssystems, mit Prüfung auf “USB Video Class Video”. Sieht alles irgendwie nicht generisch aus.
Was ich gerade gefunden habe, klingt dagegen ganz gut:

To display the Flash Player Camera Settings panel, which lets the user choose the camera to be referenced by getCamera(), use Security.showSettings(SecurityPanel.CAMERA)

Das Ganze sieht dann aus wie oben.

Effizienter Zugriff auf Singletons

Häufig sieht der Zugriff auf Singletons so aus:

Effizienter finde ich aber

Siehe Bild. getInstance() ist dabei “internal static”

PS: “internal” ist vielleicht nicht nötig, aber “protected” ging irgendwann mal nicht, deswegen… sicher ist sicher^^

Flash auf iOS, 2

7 Tage, 7 Posts, 6: Eine Kurzanleitung zum Open Screen Project Manager. Ich setze den vorherigen Post zum Thema voraus. Desweiteren wird benötigt:

Dann kann’s losgehen. Der Open Screen Manager ist eine AIR-Anwendung, die ein Projekt-Template für FDT installiert. Ein solches Projekt erzeugt ein Standard-Projekt, ergänzt um die folgenden Ordner:

  • bin: Das Export-Verzeichnis für alle Open Screen Formate
  • bin/ios: Das Export-Verzeichnis für iOS-Apps
  • bin/resources: Hier können externe Inhalte (Bilder, XMLs, …) abgelegt werden, die die Anwendung nachladen kann. ACHTUNG: SWFs dürfen keine Logik enthalten 🙁
  • build: Einstellungen und Ant-Skripte
  • build/core: Enthält zentrale Skripte plus einiger Pfadangaben. Kann im Einzelfall geändert werden, muss aber normalerweise nicht.
  • build/device: Enthält Settings für jedes unterstütze Gerät. Muss normalerweise nicht geändert werden
  • build/*.properties: Wichtige Settings, die manuell geändert werden können, aber normalerweise durch einen Dialog geändert werden:
  • build/project.osp: Per Doppelklick zu öffnender Dialog zum Setzen der wichtigsten Einstellungen

Diese Einstellungen sind die folgenden:

  • Project-Settings, Name: Dieser Name wird später auch am Icon der Anwendung auf dem iPad-Desktop stehen.
  • Project-Settings, Identifier for Distribution: Zum Beispiel com.example.myApp
  • Project-Settings, File name: Das SWF
  • Project-Settings, SWF Content: Der Name des SWF ohne Suffix (?)
  • Project-Settings, Main class: Die zu startende Klasse in dem SWF
  • Device-Settings: Hier ist die iOS-Plattform auszuwählen, also iPad, iPhone, …
  • Plattform-Settings, iOS certificate file: Das Zertifikat des Entwicklers – wichtig: als .p12-Datei
  • Plattform-Settings, iOS certificate password: Das Passwort, mit dem die .p12-Datei verschlüsselt wurde
  • Plattform-Settings, iOS Provision file: Das Provisioning-File
  • Plattform-Settings, iOS Adobe Packager (pfi): etwa ../../packagerforiphone/bin/pfi, aus dem erwähnten Paket

Kompiliert wird über Ant (/build/build.xml). Achtung: Das Skript wird basierend auf dem oben ausgewählten Device erstellt. Wenn dort nichts eingetragen ist, ist das Skript leer. Falls der Task fehlerfrei durchläuft, sollte unter bin/ios/ipad/ eine .ipa-Datei mit dem unter Project-Settings/SWF Content eingetragenen Namen erscheinen. Diese kann man dann via iTunes installieren 🙂

Flash auf iOS, 1

7 Tage, 7 Posts, 5: Eine Kurzanleitung zum Open Screen Project Manager. Hier der vorbereitende Teil:

  1. Man besorge sich einen iOS-Developer Account.
  2. Man logge sich ein.
  3. Man gehe zum iOS Provisioning Portal (rechts in der Navi)
  4. Man gehe zu “Devices”, und richte (zum Beispiel) sein iPad ein. PS: Die UDID (“Device ID”) findet man, wenn man in iTunes auf der Übersicht der Geräteeigenschaften auf die Seriennummer klickt. Diese wird dann zur UDID^^
  5. Man gehe zu “App IDs” und trage die folgenden Informationen ein: Description (Fließtext), “Bundle Seed ID” (die App-ID, unter der man mehrere Apps bündeln möchte – optional), “Bundle Identifier” (zum Beispiel com.example.myApp)
  6. Man gehe zu “Certificates” und lege einen neuen “Team Member Account” an (man beachte dabei das “Howto”, ganz rechts). Das ist wichtig, der aktuelle Account dient nur zu administrativen Zwecken. Auch wichtig: Erst nach der Verifizierung per Email erscheint der neue Account unter “Team Member Certificates”
  7. Man gehe zu Provisioning und verknüpfe App-ID(s), Entwickler und Device(s)
  8. Man lade sich das resultierende Provisioning-Profile runter