2008-09-02 5 views
0

J'ai un fichier actionscript qui définit une classe que je voudrais utiliser dans une application Flex.Comment puis-je importer une classe à utiliser dans une application Flex?

J'ai défini des contrôles personnalisés dans un fichier actionscript, puis les importer via l'étiquette d'application:

 

<mx:Application 
    xmlns:mx="http://www.adobe.com/2006/mxml" 
    xmlns:scorecard="com.apterasoftware.scorecard.controls.*" 
... 
</mx:Application> 
 

mais ce code n'est pas un élément flexible, il est plutôt une bibliothèque pour effectuer des routines mathématiques, comment est-ce que j'importe cette classe?

Répondre

5

Vous auriez besoin d'importer la classe dans une balise de script.

<mx:Application 
    xmlns:mx="http://www.adobe.com/2006/mxml"> 
    <mx:Script> 
    import com.apterasoftware.scorecard.controls.*; 
    // Other imports go here 

    // Functions and other code go here 
    </mx:Script> 

    <!-- Components and other MXML stuff go here --> 
    <mx:VBox> 
    <!-- Just a sample --> 
    </mx:VBox> 
</mx:Application> 

Ensuite, vous pourrez référencer cette classe n'importe où ailleurs dans votre balise de script. Selon la manière dont la classe est écrite, vous ne pourrez peut-être pas utiliser la liaison au sein du MXML, mais vous pouvez définir votre propre code pour gérer cela.

Les déclarations d'espace de noms sont uniquement utilisées pour importer d'autres composants MXML. Les classes AS sont importées à l'aide de l'instruction import dans un bloc de script ou dans un autre fichier AS.

0

@Herms: Pour clarifier un peu, les déclarations d'espace de noms peuvent aussi être utilisées pour "importer" des classes AS, quand vous allez les instancier en utilisant MXML. Par exemple, pensez à avoir un composant visuel personnalisé que vous avez entièrement écrit en AS, disons com.apterasoftware.scorecard.controls.MathVisualizer. Pour l'utiliser au sein de MXML:

<mx:Application 
    xmlns:mx="http://www.adobe.com/2006/mxml" 
    xmlns:aptera="com.apterasoftware.scorecard.controls.*"> 

    <aptera:MathVisualizer width="400" height="300" /> 
</mx:Application> 
Questions connexes