0

通常、私は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);

}

}

4

5 に答える 5

1

テキストフィールドを互いに重ねて配置しています。

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

labels.x=xpos+spacer; //always 320
labels.y=ypos;        //always 100
于 2009-12-07T16:33:10.730 に答える
1

私が最初に目にするのは、TextFieldを作成する行です。

var labels:TextField=new TextField();

また、setTextFormat()を使用せずにこれを実行して、問題が埋め込みフォントなどにあるかどうかを確認してください。

于 2009-12-07T16:38:10.327 に答える
0

これを使って

labels.defaultTextFormat=newFormat;

それ以外の

labels.setTextFormat(newFormat);

これにより、埋め込みフォントの問題も解決されます。助けてくれてありがとう

于 2009-12-07T16:57:26.723 に答える
0

フォントを埋め込み、テキストフィールドの内容をトレースしていることを確認してください。

于 2010-08-01T05:25:11.340 に答える
0

私も同じ問題を抱えていました。as3 TextFieldのドキュメントによると:

テキストフィールドのembedFontsプロパティをtrueに設定する場合は、テキストフィールドに適用されるTextFormatオブジェクトのfontプロパティを使用して、そのテキストのフォントを指定する必要があります。指定したフォントがSWFファイルに埋め込まれていない場合、テキストは表示されません。

つまり、プログラムでフォントを追加する場合は、ステージ上にフォントが埋め込まれた動的テキストフィールドが必要です。または、ライブラリにエクスポートオプションを使用して独自のフォントシンボルを作成し、TextFieldに追加することもできます。

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

あなたはすでにそれを理解していると思います。私はそれが他の誰かのために役立つことを願っています=)

編集:

この場合、使用する必要があります

labels.setTextFormat(newFormat);

それ以外の

labels.defaultTextFormat = newFormat;

最後のものは私にはうまくいかないようです。

于 2010-09-16T19:53:11.483 に答える