Adobe FlashBuilder 4 unter Ubuntu 10.10 – halbe Kraft zurück! (Update)

Nachdem ich zunächst total begeistert war, dass der Flash Builder so gut unter Ubuntu läuft, wurde mir jetzt ein wenig der Wind aus den Segeln genommen. Immer wieder verliert der Builder die Verbindung zum Debugger. Es ist einfach nicht möglich unter diesen Umständen vernünftig zu arbeiten! Nachdem ich nun einige Zeit mit Kamerad Google Kriegsrat abgehalten habe, bin ich zu dem Schluss gekommen, dass es eigentlich nur (drei) vier Alternativen gibt, die ich nun nach und nach ausprobieren werde, sofern eine Variante nicht funktioniert.

1. Wine-Debugger

Dass ich nicht der einzige bin, der mit dem Debugger unter Linux Probleme hat, habe ich auf der jira-Seite von Adobe gesehen. Es gibt einige Lösungsansätze, die mir aber nicht geholfen haben (zum Beispiel: dom.ipc.plugins.enabled.libflashplayer.so im Firefox auf false setzen). Allerdings wurde ich dort auf eine gute Idee gebracht: Nutze die Windows-Version des Debuggers, wo die doch so gut läuft (die Standalone-Version bekommt man hier)! Also habe ich wine und darin den Debugger und Firefox installiert. Irgendwie habe ich es nicht hinbekommen den IE mit dem Flash-Debugger zum Laufen zu bekommen. Das war mir aber egal, da ich den Browser nur benötige um die Flash-Settings zu verändern. Dazu ruft man einfach diesen Link im wine-Browser auf, klickt auf den dritten Tab von links (Globale Sicherheitseinstellungen) und fügt dort den bin-debug-Ordner des Flex-Projektes hinzu. Das ist wichtig, da es sonst später zu einer Sandbox-Verletzung kommt und der Debugger streikt.

Nun legen wir ein kleines ausführbares Script an, welches dafür sorgt, dass der Debugger ordentlich gestartet wird:

  1. #!/bin/bash
  2.  
  3.  PARAMETER=$*
  4.  PARAMETER=${PARAMETER/html/swf}
  5.  wine ~/flashplayer_10_sa_debug.exe $PARAMETER

Hier passiert eigentlich nichts weiter, als dass der Standalone-Debugger mit wine aufgerufen wird (Pfad zum Debugger bitte anpassen!). Da beim Starten des Debuggings immer die HTML-Seite übergeben wird, der Standalone-Debugger aber nur mit SWF-Files was anfangen kann, passen wir den Pfad noch entsprechend an. Ich gehe hier davon aus, dass HTML- und SWF-Dateinamen sich nur durch die Endung unterscheiden.

Zum Schluss richten wir im Flash Builder noch einen neuen Browser ein, der zum Debuggen genutzt werden soll. Als Ziel geben wir unser Script an. Das sollte es gewesen sein.

Ob jetzt alles gut wird, weiß ich nicht. Schon nach ein paar Minuten habe ich festgestellt, dass die Performance ganz schön leidet. Mal schauen…

Update: Ich habe versucht ResourceBundles für verschiedene Sprachen nachzuladen. Leider bekomme ich über den wine-Umweg immer Probleme:

Failing over to RSL http://fpdownload.adobe.com/pub/swz/tlf/1.1.0.604/ textLayout_1.1.0.604.swz

Die ResourceBundles werden nicht geladen (Error #2046: Die geladene Datei hatte keine gültige Signatur.) und somit knallt es dann an anderer Stelle:

ReferenceError: Error #1069: Eigenschaft -1 für __AS3__.vec.Vector.<flash.display::DisplayObject> nicht gefunden und es ist kein Standardwert vorhanden.
at spark.components::Label/truncateText()[E:dev4.xframeworksprojectssparksrcsparkcomponents Label.as:1246]

ReferenceError: Error #1069: Eigenschaft -1 für __AS3__.vec.Vector.<flash.display::DisplayObject> nicht gefunden und es ist kein Standardwert vorhanden. at spark.components::Label/truncateText()[E:dev4.xframeworksprojectssparksrcsparkcomponents Label.as:1246]

Den gleichen Fehler hatte ich zwischenzeitlich auch im normalen Firefox. Da habe ich meine Profiles.ini weggeschmissen und siehe da, der Fehler war verschwunden. Was innerhalb von wine jetzt aber kaputt ist, kann ich leider nicht herausfinden. Sofern jemand einen Tipp hat: her damit, ich wäre sehr dankbar 🙂

2. Wine-Flash Builder

Wenn 1. nicht funktioniert, installiere ich den ganzen Flash Builder in wine (was mir noch nicht auf Anhieb glücken wollte).

Update: Ich habe zwischendurch erneut versucht alles in wine laufen zu lassen…ohne Erfolg.

3. Windows-Anker

Wenn nichts Hilft, dann ist Schluss mit lustig und ich werde Adobe verfluchen und Flex-Anwendungen wieder unter Windows entwickeln.

4. Update: FDT

Bereits vor einem halben Jahr habe ich mich kurz mit FDT beschäftigt. Damals musste ich mich entscheiden, ob ich mir eine Adobe Flash Builder oder eine FDT-Lizenz zulege. Ich war offen für alles und fand FDT recht attraktiv und mittlerweile gibt es auch eine Linux-Version.

Hauptkriterium für meine Entscheidung war aber, dass ich laufende Projekte ohne großen Refactor-Aufwand weiterentwickeln kann. Da hatte der Flash Builder um Längen die Nase vorn. Der Compiler von FDT schien und scheint sich an einigen Stellen an MXML zu verschlucken. So auch an spark.primitives.RectangularDropShadow. Beim nachfolgenden Code bemängelt der Compiler immer:

Variable ‚visible‘ is not declared.

Dabei erbt RectangularDropShadow von UIComponent!

<?xml version="1.0" encoding="utf-8"?>
<s:Application
    xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:s="library://ns.adobe.com/flex/spark"
    xmlns:mx="library://ns.adobe.com/flex/mx"
    minWidth="955" minHeight="600"
    creationComplete="test()">

    <fx:Script>
    <![CDATA[
        public function test():void {
        dropShadow.visible = false;
    }
    ]]>
    </fx:Script>
    <s:RectangularDropShadow id="dropShadow" />
</s:Application>

Definiert man dropShadow im Script-Block als Variable und nicht in MXML, dann funktioniert alles und visible wird nicht angekreidet. Auch funktioniert es, wenn man visible direkt im MXML-Tag setzt… Offensichtlich kann der Compiler hier nicht auf die richtige Klasse auflösen. Mit dem Flash Builder gibt es solche Probleme nicht! Vielleicht könnte man das Problem mit Bindings und einer Hilfsvariablen umschiffen, aber schön ist das nicht!

Schade…FDT wäre sonst sicher eine nette aber auch nicht billigere Alternative gewesen.

2 Gedanken zu „Adobe FlashBuilder 4 unter Ubuntu 10.10 – halbe Kraft zurück! (Update)

    • alex sagt:

      Yes, I know. Several month ago I gave FDT (Win) a chance, but I had some problems (hostcomponents/skins) with my actual project and FDT. So I bought a Flash Builder lincence… At the moment it is to expensive for me to upgrade my c’t-pure licence to FDT Max.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.