Vous n'avez pas besoin de rendre la méthode statique; cela serait probablement inutile, car vous voudriez que l'appel de la méthode fasse quelque chose avec l'état actuel du composant, je devine - utiliser certaines de ses données, changer son apparence, etc. Ce dont vous avez réellement besoin, c'est une référence d'objet . Comme application.Application réside en haut (ou en fait très proche du haut) de la liste d'affichage légendaire, vous devriez être en mesure d'accéder à chaque composant en commençant à ce point, puis traversing the Display List - jusqu'à ce que finalement, à l'arrivée à votre composant imbriqué, appelant sa méthode définie publiquement.
Cependant, je dois dire (avec le plus grand respect!) Que vous vous aventurez dans des eaux OO dangereuses, ici.:) La bonne façon de le faire serait vraiment de trouver un moyen de passer une référence à votre composant personnalisé à la classe ActionScript qui nécessite un accès à - par exemple, dans votre MXML:
<mx:Script>
<![CDATA[
private function this_creationComplete(event:Event):void
{
var yourObject:YourClass = new YourClass(yourCustomComponent);
}
]]>
</mx:Script>
<components:YourCustomComponent id="yourCustomComponent" />
. .. et puis dans votre classe ActionScript:
public class YourClass
{
private var componentReference:YourCustomComponent;
public function YourClass(component:YourCustomComponent)
{
this.componentReference = componentReference;
}
private function yourMethod():void
{
this.componentReference.someMethodDefinedInYourComponent();
}
}
Une telle approche vous servirait probablement mieux. Est-ce que ça fait du sens? Je garderai un œil sur nos commentaires; poster et je ferai de mon mieux pour vous aider à le faire.