200914
Mai

Aucun com

Ce composant remplace le composant Alert d’origine en proposant une TextArea scrollable à la place d’un text dépassant parfois de l’écran.

En réalité le composant Alert d’adobe réalise toute la partie factory (style, accessiblité, création d’instances). C’est la classe AlertForm qui représente réellement la partie visuelle. L’inconvénient est que lorsque le text à montrer est long, cela peut dépasser de la Box et même de l’écran!

Un gros problème lors du développement lorsque votre serveur vous renvoit un énorme message d’erreur!

Donc nous avons développé notre propre composant d’Alert appelé SuperAlert qui à la place d’un simple TextField comporte un TextArea qui permet donc à l’utilisateur de scroller et de sélectionner plus facilement le text.

Nous avons implémenté également une mini factory dans notre classe (uniquement la méthode statique Show):

superalertdemo

Les sources

<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" horizontalAlign="center"
	width="400" height="300" showCloseButton="true" close="onClose()">
	<mx:Script>
		<![CDATA[
			import mx.core.Application;
			import mx.managers.ISystemManager;
			import mx.managers.PopUpManager;

			static public function show(message:String,title:String):void
			{
				var parent:DisplayObject;

		        if (!parent)
		        {
		            var sm:ISystemManager = ISystemManager(Application.application.systemManager);
		            if (sm.useSWFBridge())
		                parent = Sprite(sm.getSandboxRoot());
		            else
		                parent = Sprite(Application.application);
		        }				

				var instance:SuperAlert = PopUpManager.createPopUp(parent,SuperAlert,true) as SuperAlert;

				PopUpManager.centerPopUp(instance);

				instance.title = title;
				instance.txt.htmlText = message;
			}

			private function onClose():void
			{
				PopUpManager.removePopUp(this);
			}
		]]>
	</mx:Script>
	<mx:TextArea id="txt" width="100%" height="100%" />
	<mx:ControlBar horizontalAlign="right">
		<mx:Button label="Ok" click="onClose()" width="61"/>
	</mx:ControlBar>
</mx:TitleWindow>

Tags: