Bonjour,

J'ai un soucis avec un composant custom (non v3) que je souhaite
mettre en place dans le cadre d'un projet.
J'ai un problème de typage que je n'explique pas, à chaque fois que je
publie une animation contenant ce composant dont je modifie au moins 1
paramétre (si aucun paramètre n'est modifié, il n'y a pas d'erreurs) :

TypeError: Error #1034: Echec de la contrainte de type : conversion de
energitim.component::dynamicfi...@26dbc031 en
energitim.component.DynamicField impossible.

Avec le code suivant :

package custom.component
{
        //import custom.text.TextDisplayer;

        import flash.display.DisplayObjectContainer;
        import flash.display.MovieClip;
        import flash.events.Event;
        import flash.events.MouseEvent;
        import flash.text.Font;
        import flash.text.TextField;
        import flash.text.TextFieldAutoSize;
        import flash.text.TextFormat;
        import flash.text.TextFormatAlign;

        public class DynamicField extends MovieClip
        {
                public  var tText        :TextField;
                public  var tFormat      :TextFormat;
                public  var iCustomWidth :Number;
                public  var iCustomHeight:Number;
                private var arrFont      :Array = new Array();
                private var bReady:Boolean = false;


                public function DynamicField()
                {
                        super();
                        initComponent();
                        bReady = true;
                }

                protected function initComponent():void
                {
                        trace("init");
                        setListener();
                }

                protected function getDefaultFont():void
                {
                        var arrFont:Array=Font.enumerateFonts();
                        arrFont.sortOn("fontName", Array.CASEINSENSITIVE);
                }

                protected function setDefaultProperties():void
                {
                        tText.width = this.width;
                        scaleX=scaleY=1;
                        tText.htmlText="placez votre texte ici";
                        tText.autoSize = TextFieldAutoSize.LEFT
                        tText.wordWrap=false;
                }

                protected function createDefaultTextFormat():void
                {
                        tFormat = new TextFormat();
                        tFormat.color=0x000000;
                }

                protected function setListener():void
                {
                        
this.addEventListener(Event.ADDED_TO_STAGE,handleOnStage);
                        this.addEventListener(MouseEvent.CLICK,handleOnSelect);
                }

                protected function removeListener():void
                {
                        
this.removeEventListener(Event.ADDED_TO_STAGE,handleOnStage);
                        
this.removeEventListener(MouseEvent.CLICK,handleOnSelect);
                }


                protected function refreshField():void
                {
                        refreshSize();
                        refreshFormat();
                }

                protected function refreshSize():void
                {
                        if(iCustomWidth != 0 && iCustomHeight != 0)
                        {
                                tText.width  = iCustomWidth;
                                tText.height = iCustomHeight;
                        }
                }

                protected function refreshFormat():void
                {
                        tText.setTextFormat(tFormat);
                }

                public function setSize(w:Number,h:Number):void
                {
                        iCustomHeight = h;
                        iCustomWidth  = w;
                        refreshSize();
                }
                /*
                protected function getText():void
                {
                        var oText:* = findTextDisplayer(this.parent);
                        if(oText)
                        {
                                
tText.htmlText=TextDisplayer(oText).getContent(this.name);
                                refreshFormat();
                        }
                        else
                        {
                                trace("[Warning] No TextDisplayer found, the 
content wont be
displayed.");
                        }

                }

                protected function findTextDisplayer(obj:Object):*
                {
                        if(obj is TextDisplayer)
                                return obj;
                        else if(obj is DisplayObjectContainer)
                        {
                                if(DisplayObjectContainer(obj).parent!=null)
                                        return 
findTextDisplayer(DisplayObjectContainer(obj).parent)
                                else
                                        return false;
                        }
                }

                */
                protected function handleOnStage(e:Event):void
                {
                        setDefaultProperties();
                        createDefaultTextFormat();
                        tText.defaultTextFormat=tFormat;
                        getDefaultFont();
                        //getText();
                }

                protected function handleOnSelect(e:MouseEvent):void
                {
                        trace("texte selectionné");
                }


                [Inspectable(name="1 - Text", defaultValue="placez votre texte 
ici",
type="String")]
                public function set htmlText(value:String)
                {
                        if(bReady)
                        {
                                tText.htmlText=value;
                                refreshFormat();
                        }
                }

                [Inspectable(name="2 - Size", defaultValue="10", type="Number",
format="Number")]
                public function set size(value:Number)
                {
                        if(bReady)
                        {
                                tFormat.size=value;
                                refreshFormat();
                        }
                }

                [Inspectable(name="3 - Color", defaultValue="0x000000",
type="Color", format="Color")]
                public function set color(value:Number)
                {
                        if(bReady)
                        {
                                tFormat.color=value;
                                refreshFormat();
                        }
                }

                [Inspectable(name="6 - BackGround", defaultValue="false",
type="Boolean")]
                public function set background(value:Boolean)
                {
                        if(bReady)
                                tText.background=value;
                }

                [Inspectable(name="7 - BackGroundColor", 
defaultValue="0xFFFFFF",
type="Color", format="Color")]
                public function set backgroundColor(value:Number)
                {
                        if(bReady)
                                tText.backgroundColor=value;
                }

                [Inspectable(name="8 - Border", defaultValue="false",
type="Boolean")]
                public function set border(value:Boolean)
                {
                        if(bReady)
                                tText.border=value;
                }

                [Inspectable(name="9 - BorderColor", defaultValue="0xFFFFFF",
type="Color", format="Color")]
                public function set borderColor(value:Number)
                {
                        if(bReady)
                                tText.borderColor=value;
                }

                [Inspectable(name="10 - Largeur fixe", defaultValue="false",
type="Boolean")]
                public function set wordwrap(value:Boolean)
                {
                        if(bReady)
                                tText.wordWrap=value;
                }

                [Inspectable(name="5 - Font", defaultValue="Arial", type="Font
Name")]
                public function set font(value:String)
                {
                        if(bReady){
                                if(arrFont.indexOf(value)!=-1)
                                {
                                        tFormat.font=value;
                                        refreshFormat()
                                }
                        }
                }

                [Inspectable(name="4 - Align",
defaultValue="LEFT",enumeration="LEFT,RIGHT,CENTER,JUSTIFY",
type="String")]
                public function set Align(value:String)
                {
                        if(bReady)
                        {
                                switch(value)
                                {
                                        case "LEFT":
                                                
tFormat.align=TextFormatAlign.LEFT;
                                        break;
                                        case "CENTER":
                                                
tFormat.align=TextFormatAlign.CENTER;
                                        break;
                                        case "RIGHT":
                                                
tFormat.align=TextFormatAlign.RIGHT;
                                        break;
                                        case "JUSTIFY":
                                                
tFormat.align=TextFormatAlign.JUSTIFY;
                                        break;
                                }
                                refreshFormat();
                        }
                }
        }
}


Merci de vos lumière,
--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "FCNG" de 
Google Groupes.
 Pour transmettre des messages à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour résilier votre abonnement à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour afficher d'autres options, visitez ce groupe à l'adresse 
http://groups.google.com/group/FCNG?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à