AS3 et les composants

  • warning: array_map(): Argument #2 should be an array in /var/www/titouille.ch/www/modules/system/system.module on line 1050.
  • warning: array_keys() expects parameter 1 to be array, null given in /var/www/titouille.ch/www/includes/theme.inc on line 1845.
  • warning: Invalid argument supplied for foreach() in /var/www/titouille.ch/www/includes/theme.inc on line 1845.
Portrait de titouille

L'aventure continue Smile

Dans la continuation de mes tests avec l'actionscript 3, je cherchais cet après-midi à intégrer un simple composant "mx.controls.Button" dans une application AS3.
Il faut savoir qu'avec le compilateur mxmlc, même si nous pouvons compiler des projets entièrement orienté Flash/AS3 (sans passer par un fichier mxml propre à Flex), les composants du framework associé sont des composants Flex.
Selon cette logique, il n'est pas possible d'utiliser un composant du framework Flex dans une application Full AS3.

Nous sommes donc obligé de passer par un fichier mxml pour utiliser les composants. Après quelques recherches sur le web, j'ai pu trouver différentes solutions. J'ai opté pour celle qui inclu le fichier d'entrée actionscript dans le mxml plutôt que de coder directement dans ce dernier.

Pour reprendre le billet sur la mise en place des fichiers pour JEdit, il suffit maintenant de modifier la variable "mainClass" et de passer le fichier mxml "main.mxml" (attaché en fin de billet).
Ce dernier fait simplement l'importation du fichier actionScript (Main) et son exécution.

fichier Main.as :

package 
	{
	import mx.core.Application;
	import mx.events.FlexEvent;
	import mx.skins.halo.HaloBorder;
	import mx.controls.Alert;
	import mx.controls.Button;
 
	public class Main extends Application
		{
		function Main()
			{
			super();
			this.layout = "vertical";
			this.setStyle("borderSkin",mx.skins.halo.HaloBorder);
			this.addEventListener(FlexEvent.APPLICATION_COMPLETE, alertListener);
			}
 
		private function alertListener(e:FlexEvent):void 
			{
			Alert.show("Test BOX!", "Alert Box", Alert.OK, this);
 
			init();
			}
		private function init():void
			{
			var b:Button = new Button();
			this.addChild( b );
			b.x = 20;
			b.y = 20;
			b.label = "Press me";
			}
		}
	}

Si quelqu'un à des infos sur l'utilisation de composants AS2, des sets de composants hors Flex à utiliser en AS3, un ptit commentaire sera le bienvenu Wink

sources : Forums FlashDevelop