Всем счастливого вторника :) 1001 *
Я заметил, что снова использовал одни и те же шрифты в нескольких своих подклассах, поэтому я решил, что просто создаю класс шрифтов для обработки всех этих.
В любом случае, я ломаю голову над тем, как аккуратно поместить те текстовые форматы, созданные в моем классе шрифтов , в другие мои классы. Я не верю, что делаю это правильно, но в настоящее время я получаю сообщение об ошибке:
footFont = null
Ошибка типа: Ошибка № 2007: Формат параметра должен быть ненулевым.
Я хочу передать текстовый формат avant97 в мой класс фреймов для стилизации текста нижнего колонтитула
Ниже приведен мой класс шрифтов.
package src.model
{
import flash.text.*;
public class Fonts
{
public static var data:Object = {};
public static var avant97 = new TextFormat(); // Footer copy
public static var avantFF = new TextFormat(); // Navigation Copy
public static var avant0s = new TextFormat(); // Thumbnail Titles
avant97.font = (new AvantGrande() as Font).fontName;
avant97.size = 16;
avant97.color = 0x979797;
avant97.align = TextFormatAlign.CENTER;
avantFF.font = (new AvantGrande() as Font).fontName;
avantFF.size = 16;
avantFF.color = 0xFFFFFF;
avantFF.align = TextFormatAlign.CENTER;
avant00.font = (new AvantGrande() as Font).fontName;
avant00.size = 16;
avant00.bold = true;
avant00.color = 0x000000;
avant00.align = TextFormatAlign.LEFT;
}
}
Вот мой класс Frame, где я пытаюсь присоединить avant97 к TextField:
package src.display{
import flash.text.*;
import flash.display.*;
import flash.geom.Matrix;
import flash.events.Event;
// ☼ --- Imported Classes
import src.events.CustomEvent;
import src.model.Fonts;
public class Frame extends Sprite {
private var footer:Sprite = new Sprite();
private var fnt:Fonts; // <- var for Fonts Class
private var footFont:TextFormat; // var to hold avant97
// ☼ --- Constructor
public function Frame():void {
this.addEventListener(Event.ADDED_TO_STAGE, init);
}
// ☼ --- Init
public function init():void {
fnt = new Fonts(); // init the Fonts class
//fnt.data.avant97 = footFont; // trying to get avant97
Fonts.data.avant97 = footFont; // Changed per 1st answer
trace("footFont = "+footFont); // Fail
footer.graphics.beginFill(0x000);
footer.graphics.drawRect(0,0,800,56);
footer.graphics.endFill();
footer.y = stage.stageHeight - footer.height;
var footText:TextField = new TextField();
footText.defaultTextFormat = footFont; // Fail x 2!
footText.antiAliasType = flash.text.AntiAliasType.NORMAL;
footText.selectable = false;
footText.mouseEnabled = false;
footText.wordWrap = true;
footText.width = 800;
footText.height = 30;
footText.text = footCopy;
// ☼ --- Place Footer & Copy
footer.addChild(footText);
addChild(footer);
trace("Frame added --- √"+"\r");
this.removeEventListener(Event.ADDED_TO_STAGE, init);
}
}
}
По сути, я получил [идею для статического объекта данных var отсюда] [2]
Но, может быть, его пример работает только для реальных данных? Не текстовые форматы?
Это ошибка, которую я получаю еще раз:
footFont = null
Ошибка типа: Ошибка № 2007: Формат параметра должен быть ненулевым.