[英]as3 dynamic TextField words from array placed into individual MovieClips into a sentence
我正在尝试从一组单词中创建一个动态句子。 单词需要在句子中彼此相邻放置。 我需要将单词放入影片剪辑中,以便也可以将其拖动。
以下是我正在使用的代码,但我无法根据宽度获得连续排列的单词以得到格式正确的句子。 例如,单词之间将有很多多余的空间或不正确的空间,它们会重叠。 关于如何使它们在x位置上一个接一个的想法?
package com.sentances {
import flash.display.MovieClip;
import flash.display.*;
import flash.text.*;
import flash.events.*;
public class Main_Sentances extends MovieClip {
public var Sentance: Array;
public var myText: TextField;
public var myMovie: MovieClip;
public var Words: Array = new Array("This", "is", "my", "sentance.");
public function Main_Sentances() {
// constructor code
MakeWords();
}
public function MakeWords() {
var xSpot = 0;
for (var i = 0; i < Words.length; i++) {
//trace(Words[i]);
myMovie = new MovieClip();
myMovie.name = Words[i];
addChild(myMovie);
myText = new TextField();
myText.selectable = false;
myText.border = true;
myText.defaultTextFormat = new TextFormat('Verdana', 50, 0xffffff);
myText.text = Words[i];
//trace(myText.name);
myText.addEventListener(Event.ADDED_TO_STAGE, handleChng);
myMovie.addChild(myText);
function handleChng(e: Event): void {
trace("childMC ADDED_TO_STAGE");
trace(myText.textWidth);
if(i==0)
{
myMovie.x = 0;
myMovie.width = myText.textWidth;
myMovie.height = myText.textHeight;
xSpot = myText.textWidth;
}
else
{
myMovie.width = myText.textWidth;
myMovie.height = myText.textHeight;
xSpot = xSpot + myText.textWidth;
myMovie.x = xSpot;
}
}
}
}
// End Package
}
}
首先,您需要启用自动调整大小:
textField.autoSize = TextFieldAutoSize.LEFT;
然后,如果您想阅读生成的文本大小,可以使用:
var width:Number = textField.textWidth;
var height:Number = textField.textHeight;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.