Flash AS3打字机具有一些额外的效果

时间:2012-10-22 17:39:15

标签: actionscript-3 flash

我正在尝试重新创建此页面上显示的效果:http://flupie.net/blog/2010/12/typewriter-effect-with-textanim-as3/(示例#2) 但没有所有单独的文件。

我之所以不使用该代码,是因为A)它使用字符串中的文本,我希望能够将效果应用于文本字段。 B)它使用单独的.as文件,我希望它都是1个文件(我想稍后在DeviantArt上传这个,据我所知,你只能上传.swf)

那么是否可以重新创建矩阵式打字机效果,而无需使用单独的.as文件并将其应用于文本字段?我真的更像是一名设计师,而不是程序员,所以这对我来说太过分了。

编辑:要进一步澄清我打算实现的目标。我想为一个虚构的角色(想想:名字,外观,背景等)建立一个角色表,因为这个角色是将来的,我想给它一种期货感觉。因此,最终结果将包含几个单独的文本字段,可能还包含一些图像。所有这些文本字段应该同时“运行”。也许我还会添加一些“页面”,但我假设这只是通过在时间轴上添加另一个框架和一个链接到它的按钮来完成的。

我目前正在尝试破译上面链接的代码,因为这正是我的目标,包括字体和发光效果。

1 个答案:

答案 0 :(得分:1)

我写了一个课(只为你准备! - 但这很简单,我很无聊......)你可以用它来达到这个效果。显然,在某些时候看一下这段代码符合你的兴趣,但我会告诉你如何使用它 - 而且它很简单 - 不知道它是如何工作的:

在Flash中,创建一个新的ActionScript文件,将下面的代码复制到其中并将其保存为TypeFX.as - 在SAME目录中作为.fla项目文件:

package  {
    import flash.utils.Timer;
    import flash.text.TextField;
    import flash.events.TimerEvent;

public class TypeFX {

    private var timer:Timer;
    private var text:String;
    private var pos:int = 0;
    private var field:TextField;

    public function TypeFX(field:TextField, speed:int = 200, text:String = null) {
        // constructor code

        this.field = field;

        if(text != null)
        {
            this.text = text;
        }
        else
        {
            this.text = field.text;
        }

        field.text = '';

        timer = new Timer(speed, this.text.length);
        timer.addEventListener(TimerEvent.TIMER,update);
        timer.addEventListener(TimerEvent.TIMER_COMPLETE,kill);
        timer.start();
    }

    private function update(e:TimerEvent):void
    {
        pos++;
        field.text = text.substr(0,pos);
    }

    private function kill(e:TimerEvent):void
    {
        timer.removeEventListener(TimerEvent.TIMER,update);
        timer.removeEventListener(TimerEvent.TIMER_COMPLETE,kill);
        timer.stop();
        timer = null;
        text = null;
        field = null;
    }

    }

}

同样,您不需要理解使用它,但是在分解时它非常简单,您可能会喜欢看它是如何工作的。

现在,使用要将打字机效果应用于的TextField - 确保将其设置为“动态文本”并为其指定实例名称。例如,我们称之为myField - 现在,打开“动作”面板。您可以通过以下几种方式应用此效果:

如果您想使用字段中已有的文本创建打字机效果(它将清除它,然后输入),请将以下代码添加到操作面板:

new TypeFX(myField);

这将输出字段中存在的文本,字母之间的间隔为200毫秒 - 如果要更改此间隔,请添加第二个参数:

new TypeFX(myField,500);

这会将延迟增加到500毫秒

您也可以发送一个字符串来输入,而不是使用字段中已经存在的文本(建议这样,以后更容易阅读,相信我!):

new TypeFX(myField, 500, "The text to type into the field");

请注意,如果您使用此方法(传递字符串),您需要指定一个时间(例如500以上),如果您只是使用字段文本,则不能将其留空。 / p>

希望这会有所帮助,如果你遇到困难,请告诉我!