Frage

Meine aktuellen Entwicklungs-stack ist MySQL + iBatis + Spring + Spring BlazeDS Integration 1.01 + BlazeDS 3.2 und Flex 3 mit Mate 0.8.9-framework.Jetzt Flash Builder 4 beta 2 ist aus.Es gibt Coole features wie Daten-Zentrierte Entwicklung (DCD), Formular-generation etc...Wissen Sie, wie der Frühling Blazeds Integration funktioniert mit BlazeDS 4?Was ist Mate?Gibt es irgendwelche Probleme mit Flex 4 ?Wie DCD-Anzüge mit mate eventmaps.Ich weiß, es ist besser, zu versuchen, es aus mir selbst, sondern ich will einfach nur, um zu überprüfen, ob jemand jemals versucht zu migrieren Flex 4.Wenn ja, was sind die Probleme?Haben Sie bemerkt, jegliche Produktivität beschleunigen?Vielen Dank.

War es hilfreich?

Lösung

Ich kann Ihnen nicht sagen, etwas über die Migration von Drittanbieter-Komponenten.Ich benutze nicht die, die Sie erwähnt haben.

Ich kann Euch sagen jedoch, dass Sie nicht in der Lage zu laden Sie einfach Ihre bestehenden Projekt in Flash Builder 4, ändern Sie das SDK 4.0, und erwarten, dass es neu kompilieren zu müssen.Eine große Anzahl von Dinge haben sich geändert in Flex 4, oft inkompatibel.

Hier sind diejenigen, die ich ausgeführt habe, in so far:

  • Sie haben jetzt zwei parallele Komponente Bibliotheken, Spark-und MX.MX ist die alte Flex 3-Komponenten-Bibliothek, die manchmal auch als Halo, obwohl technisch gesehen nur der name der Standard-skin.Spark ist der neue Flex 4-Komponenten-Bibliothek, die nur teilweise ersetzt MX.

    Tun Sie zusammenarbeiten.Sie sind erlaubt zu verwenden, sowohl in einer einzigen app, und Sie können Dinge tun, wie setzen Sie Spark-Komponenten, die im MX-layout-Container wie ViewStack.Es gibt auch Natürliche Divisionen in einer Anwendung, wo es möglich ist, eine Seite, mit Funken, die andere MX, mit keine Sorge über Probleme, weil Sie nicht zusammenarbeiten an einem GUI-Ebene.Dialogfelder so sind, zum Beispiel.

    Der Grund, Sie haben all dies zur Unterstützung dieser neuen skinning-Sachen, die Sie gehört haben, über: Flash Catalyst, FXG, und alle, die.Wenn Sie die Lager Halo Haut, ich sehe nicht, dass Funken Fragen, um Sie, mit Ausnahme der Tatsache, dass es Die Zukunft.

    (Beiseite:Was ist der Markdown-syntax, um die Wizard-of-Oz dröhnenden echo-Effekt?)

    Joan Lafferty (Flex SDK Qualität Blei), hat eine wertvolle Artikel, Unterschiede zwischen Adobe Flex 3 und Flex 4.Auf Seite 4, Sie hat eine Tabelle mit der Liste der Flex-3 MX-Komponenten, die nicht ersetzt worden durch Spark-Komponenten, die in Flex 4.Die meisten von Ihnen haben keine eigene Gestalt, wie Accordion, so brauchen Sie nicht die Haut, oder sind Dinge wie Dialogfelder, wie Alert.(Sollten Sie Lesen durch den rest der Artikel.Es umfasst Dinge, die ich nicht, weil ich noch nicht alle Unterschiede noch nicht.)

  • Apropos skins, nur zwei der MX-skins von Flex 3 werden weiterhin unterstützt, in Flex 4.Je bunter MX-skins sind Weg, wenn es ist eine neue Reihe der bunten Spark-basierten skins, die zeigen, einige der Dinge, die Sie tun können, mit der FXG-und wie.Wenn Sie wirklich mochte einer von denen Sie sich entfernt, Sie können zweifellos neu Sie oben Funken, aber es ist nicht verfügbar, out of the box.

  • Viele Dinge haben sich seit umbenannt, und einige Funken als Ersatz für MX-Komponenten haben unterschiedliche Schnittstellen und haben so andere Namen.Zum Beispiel, um sich ganz auf Spark, müssen Sie ändern Sie Ihre VBoxes VGroupen.Es gibt viele lästige kleine Unterschiede, wie, dass.

  • Da der ganze dual-GUI-Bibliothek Sache, Adobe fanden sich mit einem Bündel von MXML-tags wie <Script> und <Style> das sind nicht eigentlich Teil des MX, die genauso gut funktionieren für Spark.Anstatt eine doppelte Reihe von tags, zogen Sie diese zum neuen XML-namespace.Dies ist ein problem für diejenigen, die stückweise die migration von vorhandenen MX-basierten apps, weil es bedeutet, du bist immer noch mit dem mx alias für den MX-Komponente-Bibliothek, so dass diese tags sind Häufig beide Bibliotheken haben alle umbenannt werden.Das neue XML-Standard-namespace für diese tags ist fx, so dass jedes <mx:Script> muss umbenannt werden <fx:Script>, und so weiter.Die IDE nicht tun dies für Sie auf importieren Sie das Projekt.Sie finden Sie eins nach dem anderen, wie Sie versuchen, um Ihre importierten Projekt zu bauen.

    Wenn Sie planen, sich ganz auf Spark können Sie vermeiden, einige der Schmerzen hier.Anstelle der Annahme der fx Standard-namespace-alias auf die nicht-MX-tags, Sie können lassen Sie es weiterhin verwenden mx, da Sie nicht brauchen, dass für MX und Spark verwendet s als Standard.

    Ihre erste Aufgabe nach dem installieren von Flash Builder 4 können sollte, um erzeugen ein frisches, neues Projekt, so dass Sie kann es zu studieren und zu kopieren-einfügen-Dinge wie diese namespace-Deklarationen von es.

  • Ein weiteres fallout der gesamten MX vs.Funken und namespace Unordnung ist, dass Ihr CSS benötigen möglicherweise Anpassungen.Flex hat eine nicht-standard-Erweiterung CSS-Code für diese, die wie folgt aussieht:

    @namespace mx "library://ns.adobe.com/flex/mx";
    mx|Application {
        ....
    
  • Alle namespace-URLs haben sich geändert, sowohl zwischen Flex 3 und Flex 4, und in mindestens einer Instanz wieder geändert während die Flex 4 beta-Prozess.

    http://www.adobe.com/2006/mxml ist jetzt http://ns.adobe.com/mxml/2009 library://ns.adobe.com/flex/halo ist jetzt library://ns.adobe.com/flex/mx

  • Die local() form der Angabe embedded font-Namen, durch Ihre gemeinsamen Namen in CSS funktioniert nicht mehr.Sie müssen verwenden url() Formular und geben Sie den Pfad zu der schriftart-Datei.

    Eine Falle zu hüten ist, dass diese Mittel, wenn Sie die Einbettung mehrerer Varianten einer einzigen schriftart (z.B.normal und bold-Schnitte) Ihrer vorherigen code, bezeichnet in der gleichen schriftart Namen, aber Ihre neue Stelle in zwei verschiedene Dateien, da die beiden GEWICHTE sind nicht in der gleichen .ttf oder .otf-Datei.Zum Beispiel diese:

    @font-face {
        src: local("Verdana");
        fontFamily: VerdanaEmbedded;
        fontWeight: normal;
    }
    @font-face {
        src: local("Verdana");
        fontFamily: VerdanaEmbedded;
        fontWeight: bold;
    }
    

    muss geändert werden, um diese:

    @font-face {
        src: url("/Library/Fonts/Verdana.ttf");
        fontFamily: VerdanaEmbedded;
        fontWeight: normal;
    }
    @font-face {
        src: url("/Library/Fonts/Verdana Bold.ttf");
        fontFamily: VerdanaEmbedded;
        fontWeight: bold;
    }
    

    In Flex 3, der compiler erraten, welche zwei .ttf schriftart-Dateien der obige code bezieht, basiert auf der fontWeight Attribut.In Flex 4, der compiler macht Sie sagen es ausdrücklich.

  • Wenn Sie Schriftarten einbetten in Ihrer Anwendung weiter zu verwenden MX-Steuerelemente, die text ist wahrscheinlich entweder verschwinden oder wieder auf die Standard-schriftart.Dies ist, weil standardmäßig Flex 4 verwendet eine andere schriftart einbetten-Mechanismus unter die Haube zu unterstützen, die verbesserte font-rendering-engine in Flash Player 10.Zum einbetten einer schriftart in der älteren Weise, so dass die alte MX-Steuerelemente können immer noch verwenden es, Sie müssen set die embedAsCFF CSS-Attribut false.

  • Die Staaten Mechanismus ist ganz anders.Das Flex-3-code:

    <mx:State name="alternate">
        <mx:SetProperty target="{myField}" name="editable" value="false"/>
    </mx:State>
    ....
    <mx:Form ...>
        <mx:TextInput id="myField"/>
        ....
    </mx:Form>
    

    wird dies in Flex 4:

    <mx:State name="alternate"/>
    ....
    <mx:Form ...>
        <mx:TextInput id="myField" editable.alternate="false"/>
        ....
    </mx:Form>
    

    Der neue Weg macht mehr Sinn für mich, weil es bringt alle die einzelnen Komponente Staaten in das tag für die Komponente selbst, statt Weg bis an die Spitze der MXML-Datei in einem ausführlichen <mx:State> block, aber durch die Umstellung auf den neuen Mechanismus ist ein wenig Schleifen.Die Umwandlung ist nicht automatisiert von der IDE aus, obwohl es wirklich sein könnte.

  • Es gibt einige tags, dürfen nicht mehr als direkte Kinder des <Application> tag.Diese fallen in mehrere Kategorien:Prüfungen, Effekte, etc.Sie müssen jetzt packen Sie diese in einen neuen <fx:Declarations> tag, wie so:

    <fx:Declarations>
        <mx:Dissolve id="myTransition" duration="100" target="{this}"/>
    </fx:Declarations>
    
  • Es gibt eine option neues Projekt in Flash Builder können Sie weiterhin mit der Flex 3.5 SDK allein, mit keine Funken an alle, für leichtere migration.Das ist gut für die ersten tests, aber irgendwann werden Sie wollen, um vorwärts zu bewegen, an welchem Punkt Sie haben zu kämpfen mit allen der oben genannten.

Der neue compiler scheint nicht alles, was viel schneller zu mir, entweder.Ich habe nicht getestet es, einfach nur fühlen, das ist, was wirklich wichtig für mich, da es immer noch macht mich das Gefühl, hämmerte mein Kopf auf meinen Schreibtisch.:) Es ist sicherlich nicht mit den anderen 7 Kerne in my development box.Grrr.

Andere Tipps

Hier ein paar Dinge, die helfen könnten:

  1. Die neueste Version von BlazeDS ist 3.2.0.3978. Ich habe nicht Ankündigungen einer neuen Version gehört.
  2. Da Sie die gleiche Version von BlazeDS halten würden, Ihren vorhandenen Code Flex Portierung 4 sollte keine Auswirkungen auf Ihrem Back-End (Frühling BlazeDS Integration, iBATIS, MySQL, etc.) Haben.
  3. Kamerad noch nicht offiziell unterstützt Flex 4. Ich Kompilierung Fehler hatte, als ich wechseln wollte. Hier ist ein Link zu einer Diskussion über Abhilfen und ein Link zu ein Flex 4-Port .

Good Luck!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top