AS2中的文本输入动画从字符串生成时随机切换两个字符

时间:2015-04-19 04:37:02

标签: flash settimeout actionscript-2 charat

我正在制作一个互动漫画,展示两个角色之间的对话。我使用本教程:http://frameentered.com/content/typing-effect-flash-as2来创建一个打字文本动画。我在Flash Pro CS6中使用AS2。

除非有时交换字符串中的两个字符,否则它的效果很好。例如,对话的一部分将输出" tos ay"而不是"说" (因为它在代码中)或" Wel,l"而不是"嗯,"

重新生成文本(通过单击下一帧然后返回)通常会修复它。但这种情况在很多不同的框架中经常发生,不知道为什么。

此外,我在计时器上有下一个/上一个按钮,只有在文本结束后才启用,以防止使用下一个/上一个帧(它们都使用相同的动态文本字段)进行拼接。这是我添加到教程中的部分,所以也许我搞砸了。

到目前为止,swf在这里:http://sta.sh/0owl7iiqx5o

我的代码是:

_root.nextbtn.enabled = false;
_root.prevbtn.enabled = false;

//speed of typing (ms)
var speed:Number = 30;

//what shall be typed
var msg1:String = "Easy for you to say.";

//where it shall be typed
typeText(msg1,tf1);


//makes the typing happen
function typeText(msg:String, tf:TextField)
{
    for (i = 0; i < msg.length; i++)
    {
        setTimeout(addChar,speed * i,msg.charAt(i),tf);
    }
}

//button timer: must load AFTER setTimeout(addChar)^
var btnTimer:Number = setTimeout(enBTN, speed * i);

//adds letters
function addChar(char:String, tf:TextField)
{
    tf.text += char;
}
//enables buttons
function enBTN()
{
    _root.nextbtn.enabled = true;
    _root.prevbtn.enabled = true;
}
非常感谢!

0 个答案:

没有答案