2010-12-06 11 views
0

Je migre un projet FlashBuilder (en fait un projet sur lequel je travaille avec le plug-in Eclipse FlexBuilder sous Linux) pour utiliser FDT. J'ai réussi à importer le projet et à le rendre attentif aux autres projets dont il dépend.Résolution d'une erreur lors de la migration d'un projet FlashBuilder vers FDT

Cependant, je reçois beaucoup d'erreurs de compilation pour des choses qui semblent inoffensives (et utilisées pour la compilation). Au moins, par exemple:

<mx:SomeClass initialize="{this.init()}" ... > 
    <mx:Script> 
    <![CDATA[ 
     .... 
     public function init() : void { 
      // ... whatever 
     } 

     public function foo(event : Event) : void { 
      // .. whatever 
     } 
      ]]> 
    </mx:Script> 
    <mx:SomeOtherComponent click="{this.foo(event)}"/> 
... etc .... 

Alors, je reçois « fonction non résolue » pour tous les appels de la forme someAttribute = « {this.someFunction()} », même si la fonction est décrite dans le même bloc fichier.

Est-ce que j'ai abusé d'AS3/FlashBuilder pendant tout ce temps?

De même, les composants génériques ont un problème. Supposons que j'ai une classe avec un différé attribut « contenu », et je veux instancier cette classe et « combler le vide »:

Je définis un composant personnalisé dans un fichier CustomComponent.mxml, avec un contenu différé

<mx:VBox> 
<mx:Script> 
    <![CDATA[ 
     public var content : IDeferredInstance; 

     public function buildMe() : void { 
     this.addChild(content.getInstance() as UIComponent); 
     } 

J'étendent le composant personnalisé dans un autre fichier xml, mettre quelque chose que le contenu (espace de noms est le nom de l'espace de noms qui contient le fichier CustomComponent)

<namespace:CustomComponent xmln:namespace="..." > 
    <namespace:content > 
     <!-- Whatever ... --> 
    </namespace:content > 
</namespace:SomeClassWithDeferredInstance > 

Là encore, je reçois un « Can » t résoudre l'erreur 'content' "dans le second fichier (un t la ligne qui lit l'espace de noms: contenu).

choses à mentionner:

  • J'utilise FDT 4.0, sous Linux, avec un (valide) eval clé
  • J'utilise un SDK personnalisé Flex 3.5 (non livré avec un FDT, mais pas un trop étrange soit)

Espérant tout le monde peut aider ...

Merci

PH

+0

Flash Builder et FDT utilisent le même compilateur Flex (Adobe Open Source un). Je recommande généralement de vérifier la version de votre SDK/compilateur, cependant si vous utilisez un SDK personnalisé, je suppose que vous l'avez déjà fait. Je ne comprends pas l'explication de votre attribut 'contenu différé'. – JeffryHouser

+0

Je pense que je voulais dire "composant personnalisé", comme décrit ici: http://livedocs.adobe.com/flex/3/html/help.html?content=intro_2.html (J'ai ajouté un exemple) – phtrivier

Répondre

0

S'il se compile correctement, et sans avertissements du compilateur, c'est un bogue dans l'analyseur et non dans votre code. Veuillez le déposer dans Jira: http://bugs.powerflasher.com/jira/browse/FDT

Pour moi, ce code n'a aucun indicateur d'erreur - je reçois même des aides rapides pour m'aider à générer du code.

Votre version FDT est peut-être également incorrecte. Vous utilisez 4.0 et c'est assez vieux (environ un an). Depuis lors, de nombreuses fonctionnalités ont été ajoutées et des bugs corrigés. Voir les notes de version pour plus d'informations.

http://fdt.powerflasher.com/docs/FDT_4_Release_Notes

Je propose la mise à niveau à FDT 4.5.x

<s:ApplicationminWidth="955" minHeight="600" initialize="{this.init();}"> 
    <fx:Script> 
     <![CDATA[ 
      private function init() : void {} 
      private function foo(event : MouseEvent) : void {} 
     ]]> 
     </fx:Script> 
     <s:Button click="this.foo(event);"/> 
    </s:Application> 
+0

Merci pour la réponse . Pour ma défense, j'ai posté la question il y a 9 mois, donc la 4.0 était assez fraîche en ce moment;) Je n'aurai pas l'occasion de tester le FDT4.5 de sitôt, mais ... – phtrivier