سؤال

عادة أنا جيد جدا في العمل طريقي جولة AS3 ولكن هذا واحد يعطيني حقا صداع

لدي هذا الرمز أدناه وكل شيء يعمل بشكل جيد يمكنني تتبع الإخراج ولكن لا يزال النص لا يظهر على خشبة المسرح أي أدلة؟

import flash.display.Sprite;
import flash.text.TextField;
import flash.display.MovieClip;
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();
var total:XMLList;
var totalPram:XMLList;
var totalImgs:XMLList;
var totalX:XMLList;
var totalY:XMLList;
var totalInfo:XMLList;
var pram:XML;
var img:XML;
var playHead:Number=0;
var spacer:Number=20;
var xpos:Number=300;
var ypos:Number=100;
/////////////////////////////// formating ///////////////////////////////////
var newFormat:TextFormat = new TextFormat();// Text formating
newFormat.size=30;
newFormat.bold;
newFormat.font="Arial";
newFormat.color="0xCBFF00";
//newFormat.leading=-7;
////////////////////////////////////////////////////////////////////////////
xmlLoader.load(new URLRequest("info_1.xml"));
xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
//var tagHolder:MovieClip = new MovieClip();

function LoadXML(e:Event):void {
xmlData=new XML(e.target.data);
xmlData.ignoreWhite=true;
Parseinfo(xmlData);

}
function Parseinfo(Details:XML):void {
total=Details.blink;
totalPram=Details.blink.tag;
totalInfo=Details.blink.more;
totalImgs=Details.blink.img;
totalY=Details.totalY.ypos;
totalX=Details.totalX.xpos;
for (var i=0; i<=1; i++) {
    //addChild(tagHolder);
    pram=totalPram[i];
    var labels:TextField=new TextField  ;// txtfield for questions to be    displayed
    labels.setTextFormat(newFormat);
    //mytxt2.autoSize=TextFieldAutoSize.LEFT;
    labels.embedFonts=true;
    labels.text=pram;
    labels.x=xpos+spacer;
    labels.y=ypos;
    trace(labels.text);
    addChild(labels);

}

}

هل كانت مفيدة؟

المحلول 3

استخدم هذا

labels.defaultTextFormat=newFormat;

بدلاً من

labels.setTextFormat(newFormat);

هذا سيحل مشكلة تضمين الخطوط أيضا. شكرا لكم الجميع على الرغم من

نصائح أخرى

أنت تضع حقول النصوص على رأس بعضها البعض.

var spacer:Number=20;
var xpos:Number=300;
var ypos:Number=100;

labels.x=xpos+spacer; //always 320
labels.y=ypos;        //always 100

أول شيء أراه موجود على الخط الذي تقوم بإنشاء TextField يجب أن يكون:

var labels:TextField=new TextField();

أيضا، حاول القيام بذلك دون استخدام SettextFormat () للتحقق مما إذا كانت المشكلة هي الخط المضمن أو أي شيء آخر.

تأكد من تضمين الخط وأنه يتم تتبع ما يقوله Textfield.

كان لي نفس المشكلة. وفقا لوثائق TextField AS3:

إذا قمت بتعيين خاصية embedfonts إلى True لحقل نص، يجب عليك تحديد خط لهذا النص باستخدام خاصية الخط لكائن TextFormat المطبق على حقل النص. إذا لم يتم تضمين الخط المحدد في ملف SWF، فلن يتم عرض النص.

بمعنى آخر، يجب أن يكون لديك بعض حقل نص ديناميكي مع خط مضمن على المرحلة عند إضافة واحدة برمجية أو، بدلا من ذلك، يمكنك إنشاء رمز الخط الخاص بك مع خيار التصدير إلى المكتبة وإضافته إلى TextField الخاص بك:

var myFont:Font = new MyFont();
...
newFormat.font = myFont.fontName;

أعتقد أنك حظيت بالفعل بها الآن. آمل أن تكون مفيدة لشخص آخر =)

تعديل:

في هذه الحالة يجب عليك استخدامها

labels.setTextFormat(newFormat);

بدلاً من

labels.defaultTextFormat = newFormat;

آخر واحد لا يبدو أن يعمل بالنسبة لي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top