다음은 메뉴를 채우는 코드입니다. 한 가지 중요한 부분을 제외하고는 오류가 전혀 발생하지 않고 모든 것이 훌륭하게 작동하는 것 같습니다. 내 megaPages
배열이 같다 값 ["HOME","BABIES","BRIDALS","MISC","WEDDINGS","ABOUT"]
하지만 (megaPages 의해 생성) 화면에 표시되는 실제 텍스트가 : AS3에서이 임의의 텍스트 잘림을 방지하려면 어떻게합니까
당신이 볼 수 있듯이
는, 텍스트의 일부 임의로 절단되고있다. 나는 그들이 메뉴 - 빌드의 다양한 단계에서 다양한 기능을 통과 할 때 텍스트 문자열을 추적했고, 항상 옳았지만 어떻게 든 각 DisplayObject가 화면에 표시 될 때 글자는 생략되었습니다 ('HOME' abd 'ABOUT'은 괜찮습니다). 나는이 문제로 어디서부터 시작할 지조차 모른다.function buildMenu() {
var itemMCs = new Array();
for (var i = 0; i < megaPages.length; i++) {
megaPages[i] = megaPages[i].toUpperCase();
trace(megaPages[i]); // at each iteration, traces as follows "HOME","BABIES","BRIDALS","MISC","WEDDINGS","ABOUT"
var textMC = createText(megaPages[i]);
var itemMC = new MovieClip();
if (i!=0) {
var newLink = new PlateLink();
newLink.y = 0;
itemMC.addChild(newLink);
}
var newPlate = new Plate();
if (i==0) {
newPlate.y = 0;
} else {
newPlate.y = newLink.height - 2;
}
newPlate.x = 0;
newPlate.width = textMC.width + (plateMargin*2);
itemMC.addChild(newPlate);
if (i!=0) {
newLink.x = (newPlate.width/2) - (newLink.width/2);
}
textMC.x = plateMargin;
textMC.y = newPlate.y + .5;
itemMC.addChild(textMC);
itemMCs.push(itemMC);
itemMC.x = (homeplateref.x + (homeplateref.width/2)) - (itemMC.width/2);
if (i==0) {
itemMC.y = homeplateref.y;
} else {
itemMC.y = itemMCs[i-1].y + (itemMCs[i-1].height - 6);
}
menuRef.addChild(itemMC);
}
}
function createText(menuTitle) {
trace(menuTitle);
var textContainer : MovieClip = new MovieClip();
var myFont = new Font1();
var backText = instantText(menuTitle, 0x000000);
backText.x = 1;
backText.y = 1;
var frontText = instantText(menuTitle, 0xFFFFFF);
frontText.x = 0;
frontText.y = 0;
textContainer.addChild(backText);
textContainer.addChild(frontText);
return textContainer;
}
function instantText(textContent, color) {
trace(textContent); // again, traces the right text each time it is fired
var myFont = new Font1();
var myFormat:TextFormat = new TextFormat();
myFormat.size = 18;
myFormat.align = TextFormatAlign.CENTER;
myFormat.font = myFont.fontName;
var myText:TextField = new TextField();
myText.defaultTextFormat = myFormat;
myText.embedFonts = true;
myText.antiAliasType = AntiAliasType.ADVANCED;
myText.text = textContent;
myText.textColor = color;
myText.autoSize = TextFieldAutoSize.LEFT;
trace(myText.text);
return myText;
}
글꼴이 포함되어 있어야합니다. – Ronnie
무엇이'PlateLink'와'Plate'입니까? – www0z0k
Plate 및 PlateLink는 회색 사각형의 인스턴스이며 텍스트의 각 비트에 대한 연결 체인입니다. –