welcome to phihochzwei. – freelance.development
| imprint |
FlipViewTransition und destructionPolicy=”never”
Allgemein — geschrieben von Koblitz @ 12:33 | comments (0)

Bei einem aktuellen Mobile-Projekt will der Kunde eine FlipViewTransition zwischen den einzelnen Views haben. Soweit ja erstmal kein Problem. Jetzt wollten wir aber nicht hingehen, und das Hauptmenü jedes mal neu erzeugen, also setzten wir den jeweiligen View halt auf

destructionPolicy="never"

Allerdings hatte das den Effekt, das am Ende der Transition der gesamte Inhalt des View weg war. Nach ein wenig suchen stellte sich dann heraus, das die X-,Y- und Z-Koordinaten des Views irgendwo bei -500irgendwas lagen, was natürlich zur Folge hat, das der ganze View ausserhalb des Viewports liegt. Das ein ziemliche doofer Bug. Aber doofe Bugs haben meist einfache Lösungen. In diesem Falle einfach:

package{
	import spark.components.View;
	import spark.transitions.FlipViewTransition;
 
	public class FixedFlipViewTransition extends FlipViewTransition{
 
 
		public function FixedFlipViewTransition(){
 
		}
 
		override protected function cleanUp():void{
			var tmp:View = endView;
			super.cleanUp();
			tmp.x = tmp.y = tmp.z = 0;
		}
	}
}

als Transition-Klasse nehmen und alles ist gut.

Happy Coding

Mac OSX 10.7.3 und Adobe Media Encoder
Allgemein — geschrieben von Koblitz @ 08:07 | comments (0)

Falls wer mal Probleme hat, den Media Encoder unter OSX zu starten, hier folgender Tip:

Unter /User/USERNAME/Library/Preferences liegt eine Datei namens com.Adobe.Adobe Media Encoder.5.5.plist. Prüft einfach ob diese Datei Lese & Schreibrechte für jeden hat. Wenn nicht, ändern, und schon geht es wieder.

Update Flash Builder 4.5 auf 4.6 Master Collection
blog² — geschrieben von Koblitz @ 08:53 | comments (0)

Guten Morgen allesamt,

sollte jemand von euch den Flash Builder von Version 4.5 auf 4.6 updaten wollen, müsst ihr ja bekanntermaßen 4.5 deinstallieren und 4.6 neu installieren. Bei der Installation fragt er einen NATÜRLICH nach der Seriennummer. Ich also brav die Seriennummer meiner Master Collection eingegeben, klick, “Diese Seriennummer ist für dieses Produkt nicht gültig”.

“WTF?” dachte ich im ersten Moment. Nach einer netten Runde Adobe-Support Chat und dem vergeblichen Versuch morgens um 8 Uhr jemanden telefonisch beim technischen Support zu erreichen, dachte ich mir “Okay, dann halt erstmal als Testversion, kümmerst du dich später (also in 30 Tagen) drum”.

Erstaunlicherweise stellte ich nach der Installation fest, dass er die Seriennummer der Master Collection dann doch automatisch erkennt und den Flash Builder aktiviert.

Also: Beim Update einfach als Testversion installieren, der Rest passiert im Hintergrund.

Flashbuilder und unbekannte Devices
Allgemein — geschrieben von Koblitz @ 11:15 | comments (0)

Damals, als der Flashbuilder 4.5 noch im Prerelease-Stadium war, hab ich es nach vielen Mühen geschafft, ein unbekanntes Android-Device (Archos 101) dann doch noch ans Laufen zu bekommen. Aus aktuellem Anlass hier nochmal wie das bei mir unter Windows 7 funktionierte:

  1. Flashbuilder schliessen
  2. Den adb.exe Prozess schliessen, falls dieser noch laufen sollte
  3. Im Programm-Verzeichniss des Flashbuilder in den Unterordner \drivers\android\ aufsuchen und hier die Datei android_winusb.inf mit Administratorrechten öffnen
  4. Folgenden Block in den Bereich eurer CPU-Architektur eintragen:
    ;Archos 101
    %SingleAdbInterface% = USB_Install, USB\VID_0E79&PID_1411
    %CompositeAdbInterface% = USB_Install, USB\VID_0E79&PID_1411&MI_01
  5. Kommandozeile aufrufen und in den Userprofilordner wechseln
  6. Folgendes eingeben und mit Enter bestätigen:
    echo 0×0e79 >> “.android\adb_usb.ini”
  7. Flashbuilder starten und das Device sollte ansteuerbar sein

Die Device ID´s
USB\VID_0E79&PID_1411
USB\VID_0E79&PID_1411&MI_01

sind natürlich jetzt nur für das Archos 101. Wenn Ihr ein anderes Device habt, müsst ihr den Device Manager des Android SDK starten und in den Details des Gerätes nach dem Punkt “Hardware Ids” schauen.

Gruss an Saban und viel Erfolg

Amazon S3 und das Leid der Lokalität
blog² — geschrieben von Koblitz @ 10:18 | comments (0)

Zur Zeit sitz ich hier an einem Projekt, dass zum Großteil auf dem Amazon S3 bzw. auf Cloudfront aufbaut. Jetzt dachte ich mir, dass es ja doch ganz cool wäre, wenn ich die Dateiverwaltung direkt mit in die AIR-Anwendung baue. Hab dazu auch eine nettes Tutorial gefunden und fing dann an, mir dafür eine Klasse zu schreiben. Doch leider scheiterte ich schon an der einfachen Ausgabe der Datei-Liste in meinem Bucket. Nach ein wenig Suche in der AWSS§-API hab ich dann herrausgefunden wo der Hund begraben liegt.

Der S3 lieferte nur ein nacktes “AWS authentication requires a valid Date or x-amz-date header” zurück, was mich jetzt erstmal ein wenig wunderte. Grund für diesen Fehler: Ich bin Deutsch :)

Der S3 erwartet ein bestimmtes ENGLISCHES Date-Format. Mein Compile ist allerdings auf Deutsch eingestellt. Ergo funktioniert das nicht. Lösung ist ganz einfach. Einfach in den Compiler-Einstellungen vom Flashbuilder “-locale de_DE” in “-locale en_US” änderun und schon läuft alles wie es soll.

Actionscript-Error #2000: Wer schreibt bei Adobe eigentlich die Fehlermeldungen?
Flex/Flash Fehlercodes, blog² — geschrieben von Koblitz @ 07:11 | comments (1)

Heute mal wieder eine Geschichte aus dem Buch “Wer braucht schon klare Informationen?”.

Wir arbeiten seit geraumer Zeit an einem Langzeitprojekt, welches sicher immer weiter entwickelt hat und nach und nach immer weiter erweitert und aufgebohrt wurde. Neueste Errungenschaft: Ein Amazon S3 mit CloudFront, um die hohe Anzahl an Videodaten vernünftig über den Äther zu bekommen. Und da das unser erster Kontakt mit Amazon in diesem Bereich war bzw. ist, waren wir natürlich gespannt wie das alles so läuft.

Die Vorarbeit schonmal gut :)
Einen Eimer angelegt (bei Amazon heissen Unteraccounts “Buckets” ), Videos rein, Streaming-Distribution angelegt, fertig. Dann schnell den Link nehmen und mal stumpf über die FLVPlayback-Komponente in Flash getestet, läuft sehr gut. Jetzt soll das ganze natürlich in unserem Projekt laufen, in dem wir einen eigenen Videplayer gebaut haben, laufen.

Soweit auch kein Problem, im Konstruktor von unserer VideoPlayer-Klasse einfach geschwinde die notwendigen Änderungen gemacht, das ganze in einen Testcase eingebaut, auf F11 gehauen, wow, läuft!

Jetzt soll natürlich der Kunde auch sehen, dass das super läuft, und das selbst ich mit meinem Dorf-DSL (danke Telekom, ich hasse euch) ein HD-Video anständig gestreamt bekomme. Also hochladen, Test-URL aufrufen und…. *BAMM*

SecurityError: Error #2000: Kein aktiver Sicherheitskontext.

Wie? Was? Security Error? Was für ein SecurityError? Nein das doch jetzt nicht war, kann doch nicht sein, dass Amazon da was falsch gemacht hat. Doku´s gewälzt, rumprobiert und und und, schliesslich läuft das ganze ja mit progressivem Video seit geraumer Zeit. Nix gefunden.

Und ich weiss nicht wie es dem Rest da draussen geht, mich treibt sowas in den Wahnsinn. Also was macht man, richtig, alles in möglichst kleinen Schritten nach vorne bringen. Und da setzte dann meine Verwunderung ein.
Denn eigentlich erwartete ich, dass der Fehler aus der Verbindung des Videoplayers mit dem FMS bei Amazon entspringt, alles andere läuft ja schon seit ewigen Zeiten. Klingt logisch oder? FALSCH! Die Fehlermeldung kam auch OHNE die Verbindung zum FMS.

Wo kommt sie her? Relativ banale Sache: Der VideoPlayer erwartet im Konstruktor ein Parameter für ein Vorschaubild  das er dann anzeigt, bevor irgendwas gemacht wird. Jetzt hatte ich gerade keines zur Hand und habe deswegen einfach eine “leeres” PNG genommen damit er halt was zu laden hat. Und eben jenes PNG hatte ich vergessen mit auf den Server zu laden. Was ja auch passieren kann.

Aber warum zum Teufel wirft der mir einen SecurityError weil er ein Bild nicht laden kann? Dafür gibt´s den IOErrorEvent bzw. wenn das nicht gehandled wird Error #2044!

Manchmal frage ich mich wirklich, wie solche Dinge bei Adobe zustande kommen…. Also, Jungs und Mädels, merkt euch:

Wenn euch SecurityError: Error #2000: Kein aktiver Sicherheitskontext plagt, schaut nach ob ihr auch überall eure Bilder ladet!

happy Coding

Photoshop CS5 und SsCore.dll
blog² — geschrieben von Koblitz @ 05:52 | comments (0)

Gestern abend fing mein Photoshop (sowohl 32Bit als auch 64Bit) auf einmal an rumzuspinnen. Direkt beim Start hang es sich auf und ging einfach wieder zu. Ein kurzer Blick in die Ereignissanzeige wies mich darauf hin, daß es Probleme mit der SsCore.dll gibt. Selbst Deinstallation und Neuinstallation hat nichts gebracht. Eine Recherche nach besagter Datei war, abgesehen von “Kauf hier unserer UNGLAUBLICHE Reperatursoftware mit der Du auch über Wasser laufen kannst”-Seiten ergebnislos.

Nun bin ich in solchen Dingen ja eher wie ein Chirurg. Ich rede jetzt nicht vom diffizilen “Emergency Room”-Chirurgen. Ich meine damit eher so die “House, MD”-Chirurgie:”Wenn es dir weh tut, schneiden wir es raus und sehen was passiert”. In diesem konkreten Fall heisst das, Datei einfach mal probehalber in “__SsCore.dll” umbenennen. Und schon gehen meine Photoshops wieder.

Ich weiss, eigentlich soll und kann das ja nicht die Lösung sein, zumal ich immer noch nicht weiss, was ich damit jetzt wirklich lahmgelegt habe. Aber anders ging es nunmal nicht.

Wenn jemand mir sagen kann, was diese Datei tatsächlich tut und wo der Fehler liegen könnte, ich bin ganz Ohr.


UPDATE:
Okay, ich hab gerade festgestellt woran es liegt: Ich hab hier 4 Displays. 2x 22″, 1×27″ und ein 8″ Subdisplay. Und sobald ich letzteres abkabel klappt alles ganz normal.

flash / flex fehler #1053
Flex/Flash Fehlercodes — geschrieben von Koblitz @ 08:49 | comments (0)

ActionScript Error #1053: Zugriffsarten müssen übereinstimmen.

ActionScript Error #1053: Accessor types must match.

Eine, meiner Meinung nach, tolle Sache in ActionScript sind die Getter und Setter. Mit ihnen hat man die Möglichkeit, Klassenvariablen deren Sichtbarkeit auf protected oder private gesetzt wurde von Außerhalb der Klasse zu ändern und auf diese Änderungen zu reagieren bzw. diese zu verifizieren. Von Außen betrachtet spricht man die Variablen allerdings nicht über eine Methode an, sondern behandelt diese wie eine Eigenschaft. Das soll heißen:

Die Änderung einer Eigenschaft über eine public-Funktion

meinInstanz.setCoffee("ich bin eine Tasse Kaffee");

tut letztenendes das selbe wie die Änderung einer Eigenschaft über einen Setter

meineInstanz.coffee = "Ich bin eine Tasse Kaffee";

Ob man das nun besser findet oder nicht sei einem selbst überlassen, ich für meinen Teil mag es und vermisse es in Java
…Hier geht es weiter… »

Flash / Flex fehler #1026
Flex/Flash Fehlercodes — geschrieben von Koblitz @ 08:31 | comments (0)

ActionScript Error #1026: Konstruktorfunktionen müssen Instanzmethoden sein.

ActionScript Error #1026: Constructor functions must be instance methods.

Der Konstruktor einer Klasse wird bekanntermaßen aufgerufen, wenn eine Instanz dieser Klasse erzeugt wird. Aus diesem Grund ist der Sache eher hinderlich, wenn man versucht, eben jenen Konstruktor als statische Methode aufzurufen, da diese ja OHNE eine Instanz der Klasse auskommen sollen, zum Beispiel um häufig wiederkehrende Berechnungen oder Aktionen auszulagern. Deswegen darf der Konstruktor einer Klasse nicht statisch sein.
…Hier geht es weiter… »

Flash / Flex Fehler #1024
Flex/Flash Fehlercodes — geschrieben von Koblitz @ 08:18 | comments (0)

ActionScript Error #1024: Eine nicht für ‘override’ gekennzeichnete Funktion wird außer Kraft gesetzt.

ActionScript Error #1024: Overriding a function that is not marked for override.

Eigentlich keine große Sache. Eine erstellte Funktion hat den gleichen Namen, wie eine bereits existierende Funktion, welche aber nicht überlagert werden kann.

FALSCH

function play():void{
   this.gotoAndPlay(1);
}

Die Lösung ist relativ simpel: einfach einen anderen Namen geben :)

RICHTIG

function doPlay():void{
    this.gotoAndPlay(1);
}
Nächste Seite »