繁体   English   中英

从数组中将as3动态TextField单词放入单个MovieClip中并放入句子中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM