水平动态文本滚动与外部文本

时间:2012-06-04 20:28:10

标签: flash actionscript actionscript-2

如果我将文本放在Dynamic Text上,我有一些效果很好的脚本,但是如果我从外部.txt文件加载它,我加载的文本没有插入动态文本。

这是我的代码:

在我的外部txt文件上我使用:

_txt=Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.

我用它来加载外部文本。

loadText = new LoadVars();
loadText.load("letreiro.txt");
loadText.onLoad = function() {
    _root.textoletreiro = this._txt;
    trace(_root.textoletreiro); // the Output shows the text!
    mcText._txt.text = _root.textoletreiro; // here i'm puting the text on the Dynamic Text, but is not working.
};

这里是我的水平滚动代码:

var resetPos:Number = (mcText._txt._x * -1) + 2; 
var endOfText= mcText._txt._x - (mcText._txt.textWidth + 5); 


function scroller()
{   


    mcText._txt._width = mcText._txt.textWidth;
    mcText._txt.multiline = false;
    mcText._txt.autoSize = "right";

    mcText.onEnterFrame = function() {
        mcText._txt._x -= 1;  
        if (mcText._txt._x < endOfText)
        {
            mcText._txt._x = resetPos;
            delete this["onEnterFrame"]; 
            scroller();
        }
    }
}
scroller();  

我做错了什么?

PS:使用letreiro.txt

的来源编辑

1 个答案:

答案 0 :(得分:0)

假设你在舞台上有一个名为mcText的MovieClip定位0,0并且在一个名为_txt的TextField中,那么下面的代码会滚动你的文本,直到它到达容器边缘然后重置为0并再次滚动:

var text:String = "here is some text I would like to scroll.";
var fmt:TextFormat = new TextFormat("Arial", 32);

mcText._txt.multiline = false;
mcText._txt.wordWrap = false;
mcText._txt.autoSize = true;
mcText._txt.text = text;
mcText._txt.setTextFormat(fmt);

function scroller()
{   

    mcText.onEnterFrame = function() {
        mcText._txt._x -= 2; 

        if (Math.abs(mcText._txt._x) >= mcText._txt._width)
        {
            mcText._txt._x = 0;
            delete this["onEnterFrame"]; 
            scroller();
        }
    }
}
scroller();