2012-04-03 12 views
1

Für mein Projekt CS5.5 Ich verwende die folgenden:TLFTextField gebrochen, nachdem er von CS5 Upgrade

  • FlashDevelop 3.3.4 RTM
  • Flash Pro CS 5 (Bibliotheken nur, ohne Code)

Vor einiger Zeit haben wir begonnen, TLFTextfields zu verwenden. Eine der Sachen, die ich tun musste, war, die Datei tlfruntime.swc aus dem Adobe Flash CS 5-Ordner in das FlashDevelop-Projekt aufzunehmen. Beachten Sie, dass ich diese Datei in den Projektordner kopiert und eingebunden habe. Ich habe die Datei nicht einfach direkt aus dem CS5-Pfad eingefügt.

Ich habe seitdem einen neuen Computer mit Flash CS 5.5 gegeben. Ich neu kompiliert eine meiner swf Bibliotheken in CS 5.5, und wenn ich jetzt das Programm ausführen, erhalte ich:

Illegal override of createTextLine in flashx.textLayout.compose.ComposeState 

Ich stelle dar, die tlfruntime.swc im Projekt FlashDevelop enthalten ist veraltet und muss aktualisiert werden mit dem von CS 5.5. So kopierte ich die tlfruntime.swc vom Pfad 5.5 CS, schließen sie in den FlashDevelop Projekt (statt der älteren Datei), aber jetzt bekomme ich dies:

Illegal override of softKeyboardActivatingHandler in fl.text.container.TLFContainerController. 

Kann mir jemand helfen mit dem, was sonst muss ich tun um TLFTextfields wieder in CS 5.5 zu arbeiten?

UPDATE: Ich habe FlashDevelop 4.0.1 RTM aktualisiert, und ich bekomme jetzt diesen Fehler:

Illegal override of createGeometry in flashx.textLayout.elements.FlowGroupElement. 
+0

Ich bin wirklich verwirrt, weil ich in den Adobe-Dokumenten sehe, kann ich ComposeState-Klasse oder eine TLFContainerController-Klasse (oder sogar das fl.text.container-Paket) nicht sehen. Es gibt eine FlowGroupElement-Klasse, aber es gibt keine Methode namens createGeometry, nicht einmal in ihrer Elternklasse. –

+0

Es gibt keine Methode namens "createGeometry" in der aktuellen Version von FlowElementGroup, weshalb der Fehler wahrscheinlich ausgelöst wird. – weltraumpirat

Antwort

1

Es ist sehr bedauerlich, dass Adobe die tlfruntime.swc verteilen sich nicht frei, und scheint auch nicht viel Zeit damit verbringen, Veränderungen zu erklären.

Ich habe das gleiche Problem: Die API für TLFTextField in TLF2 geändert, die mit CS5.5 gebündelt ist. Die bemerkenswerteste Änderung war die vollständige Entfernung von TextLayoutFormatValueHolder (gut gelöst!), Aber es gab eine Reihe anderer Änderungen, an die ich mich nicht erinnern kann.

Kopieren der neueren tlfruntime.swc war der richtige Anfang, jetzt müssen Sie leider auch Ihren Code anpassen. Sie sollten alle Teile Ihrer älteren Bibliotheken, die TLF verwenden, in FlashDevelop öffnen (wie bei aller Code-Überprüfung zur Bearbeitungszeit, Flash IDE wird nicht viel helfen) und sehen, ob es Fehlermeldungen gibt, dann überprüfen Sie gegen die most recent API. Beachten Sie die Filtereinstellungen - Sie können sich eine ältere Version von TLFTextField ansehen!

In den meisten Fällen sollten diese Änderungen nicht viel Aufwand erfordern. Ich war in ein paar Stunden fertig. Aber es kann durchaus einige Grenzfälle geben, bei denen Sie umfangreichere Umschreibungen vornehmen müssen.

+0

Danke für diese Info, es gibt mir viel mehr Einblick. FlashDevelop gibt mir keine Compilerfehler, aber wenn ich in FD debugge, erhalte ich den gleichen Illegal Override Fehler. Leider bekomme ich keine Stack-Trace oder irgendwelche nützliche Informationen darüber, was für einen Anruf ich mache, ist falsch. Ich habe jede Eigenschaft und Methode, die ich anrufe, von einem TLFTextField gegen die API-Doco überprüft, die Sie oben verlinkt haben, und sie sind alle darin enthalten. Also ich bin mir nicht sicher, was ich anrufe ist falsch :( –

+0

Wie wechsle ich zu 4.5.1?Wenn ich Projekteigenschaften öffne und zum SDK gehe, wird nur 4.6.0 aufgelistet. Ich klickte auf Installierte Flex-SDKs verwalten und erweiterte, und erneut wird nur 4.6.0 aufgeführt. –

+0

Es muss dann die tflfruntime.swc sein. Sind Sie sicher, dass Sie alle Ihre Bibliotheken neu kompiliert haben? Vielleicht enthält eine alte SWC die ältere Version der Dinge, und der Klassenlader muss mit widersprüchlichen Bibliotheken umgehen? – weltraumpirat

Verwandte Themen