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.