IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 3 Discussion :

TextField utilisant un EmbedFont n'affiche rien.


Sujet :

ActionScript 3

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 5
    Points : 6
    Points
    6
    Par défaut TextField utilisant un EmbedFont n'affiche rien.
    Bonjour,

    je suis sur un travail de client sur un serveur qui fera office de chat. Côté communication, ça va j'ai bidouillé pour que ça marche.

    Je ne suis pas très à l'aise avec l'actionscript.

    Alors voilà, j'ai une police que j'aimerai utiliser dans mon code. Je l'embarque donc avec Embed. Je l'initialise avec Register.

    Je l'utilise dans mon textFormat. Je mets mon textfield.embedFonts à true. Rien ne s'affiche, comme si la police n'avait pas été embarquée. J'enlève le code d'embedFont, il m'affiche bien du texte sans la police, donc c'est bien ici que ça coince.

    Voici mon code :
    FontLibrary du dossier StaticLibraries : embarque la police, et l'initialise via init.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    package StaticLibraries
    {
    	import flash.text.Font;
    	public class FontLibrary
    	{
    		[Embed(source='../lib/fonts/DoubleFeature21.ttf',fontName='Double_Feature',fontWeight="normal",fontStyle="normal",embedAsCFF="false")]
    		private static var F_DOUBLE_FEATURE:Class;
     
    		public static function init():void
    		{
    			Font.registerFont(F_DOUBLE_FEATURE);
    		}
    	}
    }
    Link du dossier GraphicsElement : Classe parente de LinkAdress, là où on instancie le textfield. Quand j'enlève _textField.embedFonts = true; il m'affiche le texte sans la police, quand je le laisse, il ne m'affiche pas le texte, comme si la police n'était pas embarquée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    package GraphicsElement
    {
    	import flash.display.Sprite;
    	import flash.text.TextField;
    	import flash.text.TextFormat;
    	import flash.text.TextFieldAutoSize;
    	import flash.events.MouseEvent;
     
    	import Events.LinkEvent;
     
    	public class Link extends Sprite
    	{
    		protected var _value:String;
    		protected var _textField:TextField;
    		protected var _defaultFormat:TextFormat;
    		protected var _defaultFilters:Array;
    		protected var _hoverFormat:TextFormat;
    		protected var _hoverFilters:Array;
     
    		public function Link(value:String,text:String,defaultFormat:TextFormat = null,hoverFormat:TextFormat = null,defaultFilters:Array = null,hoverFilters:Array = null):void
    		{
    			if(defaultFilters == null)
    			{
    				defaultFilters = [];
    			}
    			if(hoverFilters == null)
    			{
    				hoverFilters = [];
    			}
    			_value = value;
    			_textField = new TextField();
    			_textField.text = text;
    			_defaultFormat = defaultFormat;
    			_textField.selectable = false;
    			this.buttonMode = true;
    			if(_defaultFormat != null)
    			{
    				_textField.defaultTextFormat = _defaultFormat;
    			}
    			_textField.embedFonts = true;
    			_textField.autoSize = TextFieldAutoSize.LEFT;
    			_defaultFilters = defaultFilters;
    			_textField.filters = _defaultFilters;
    			_hoverFormat = hoverFormat;
    			_hoverFilters = hoverFilters;
    			addChild(_textField);
    		}
    		public function onResume():void
    		{
    			this.addEventListener(MouseEvent.CLICK,onClick);
    			this.addEventListener(MouseEvent.ROLL_OVER,onOver);
    			this.addEventListener(MouseEvent.ROLL_OUT,onOut);
    		}
    		public function onPause():void
    		{
    			this.removeEventListener(MouseEvent.CLICK,onClick);
    			this.removeEventListener(MouseEvent.ROLL_OVER,onOver);
    			this.removeEventListener(MouseEvent.ROLL_OUT,onOut);
    			this.onOut();
    		}
    		protected function onOver(e:MouseEvent = null):void
    		{
    			if(_hoverFormat != null)
    			{
    				_textField.defaultTextFormat = _hoverFormat;
    			}
    			_textField.filters = _hoverFilters;
    		}
    		protected function onOut(e:MouseEvent = null):void
    		{
    			if(_defaultFormat != null)
    			{
    				_textField.defaultTextFormat = _defaultFormat;
    			}
    			_textField.filters = _defaultFilters;
    		}
    		protected function onClick(e:MouseEvent = null):void
    		{
    			dispatchEvent(new LinkEvent(LinkEvent.LINK_CLICK,_value));
    		}
    	}
    }
    LinkIndex du dossier GraphicsElement : Classe enfante de Link. Elle se contente d'instancier les formats, donc le choix de la police est là, et d'appeler le constructeur parent.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    package GraphicsElement
    {
    	import flash.text.TextFormat;
     
    	public class LinkIndex extends Link
    	{
    		public function LinkIndex(value:String,text:String):void
    		{
    			var defaultFormat:TextFormat = new TextFormat("Double_Feature",20,0xBB0F17);
    			var hoverFormat:TextFormat = new TextFormat("Double_Feature",20,0x800080);
    			super(value,text,defaultFormat,hoverFormat);
     
    		}
    	}
    }
    Main.as, classe princale : Ne vous occupez pas des commentaires et des import en trop. Pour mon test, sachez juste qu'il initialise la police, et instancie un LinkIndex qu'il ajoute en enfant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    package
    {
    	import flash.display.Sprite;
    	import flash.events.Event;
     
    	import Structure.BackController;
    	import Structure.ControllerManager;
    	import Controllers.InitSocketController;
    	import StaticLibraries.FontLibrary;
     
    	import GraphicsElement.LinkIndex;
    	import GraphicsElement.Link;
     
    	[SWF(width='800',height='550',frameRate='30',backgroundColor='0xb8b4b8')]
    	public class Main extends Sprite
    	{
    		public function Main():void
    		{
    			if(stage)
    			{
    				init();
    			}
    			else
    			{
    				addEventListener(Event.ADDED_TO_STAGE,init);
    			}
    		}
    		protected function init(e:Event = null):void
    		{
    			removeEventListener(Event.ADDED_TO_STAGE,init);
    			FontLibrary.init();
    			/*ControllerManager.initMain(this);
    			ControllerManager.push(new InitSocketController());*/
    			addChild(new LinkIndex("inscription","Inscription"));
    		}
    	}
     
    }
    Voilà tout, je ne sais d'où vient l'erreur, je suppose que ça vient de l'embed lui même, mais je ne sais comment le corriger.

    Je vous remercie d'avance pour votre réponse.

  2. #2
    Membre actif Avatar de gustave02
    Homme Profil pro
    aucune
    Inscrit en
    Février 2013
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Février 2013
    Messages : 162
    Points : 225
    Points
    225
    Par défaut
    bonjour
    j'ai vu dans ton code link.as

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    _textField = new TextField();
    _textField.text = text;// tu écrit ton text ici avec quel format?
    _defaultFormat = defaultFormat;
    je pense que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    _textField = new TextField();
    _defaultFormat = defaultFormat;
    _textField.selectable = false;
    this.buttonMode = true;
    _textField.embedFonts = true;
    _textField.autoSize = TextFieldAutoSize.LEFT;
    if(_defaultFormat != null){
    	_textField.defaultTextFormat = _defaultFormat;
    }
    _textField.text = text;
    si tu mets le format aprés le text le format ne va pas s'appliquer.

    j'ai fait un petit test qui marche. si tu veux l'exemple que j' ai fait a partir d'une partie de tes fichiers dis le moi?
    @+ gustave02

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Merci de ta réponse !

    Effectivement en mettant le texte après embedFonts = true, ça marche parfaitement ! Je n'y avais pas pensé, je te remercie !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Boot mais n'affiche rien
    Par log2n dans le forum Assembleur
    Réponses: 28
    Dernier message: 03/11/2005, 21h16
  2. Réponses: 4
    Dernier message: 12/09/2005, 19h23
  3. pourquoi mon quickreport n'affiche rien ?
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 8
    Dernier message: 31/07/2005, 00h59
  4. [LG]Programme qui n'affiche rien
    Par ousunas dans le forum Langage
    Réponses: 4
    Dernier message: 17/02/2004, 19h38
  5. Opengl n'affiche rien.
    Par Fugus02 dans le forum OpenGL
    Réponses: 4
    Dernier message: 06/01/2004, 15h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo