| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > ActionScript教程 > 文章正文 用户登录
著名IT博客TechCr
Better fonts免费
Symantec提供免费
tennal 的创业经历
网站赚钱指南之:
谁杀死了站长(We
借助js在flash中運
如何創建屬於自己
不需要Flex也可以
FlashMX2004的事件

TextField类           

TextField类

作者:佚名 来源:闪吧 作者: 闪灵凶猛 更新:2007-1-13 20:49:00 错误报告 我要投稿


使用文本工具创建的动态文本和输入文本都是TextField类的实例,TextField类具有与MovieClip类相似的属性和方法,因此可以像对影片剪辑的实例一样动态地改变文本实例的显示特性。通过设置文本变量名的方法只能动态调用或改变文本中的内容,如果要使它们真正成为TextField类的实例,就必须在它们对应【属性】面板的“实例名称”文本框中为实例命名。
例如,将myTxt指定为一个动态文本的实例名称,于是可以使用下面的方法指定该文本所要显示的内容:


myTxt.text = "Hello World!";
其中,text是TextField类中表示文本内容的属性。如果该文本同时被指定以content作为变量名,那么下面的语句用来实现与上面相同的功能:


content = "Hello World!";
可见,文本变量名的作用仅仅相当于TextField类的text属性,然而将动态文本或输入文本创建成TextField类的实例将可以实现更多的功能。
使用MovieClip类的createTextField方法可以动态地创建TextField类的实例,如下所示:

my_mc.createTextField(instanceName, depth, x, y, width, height);
其中,instanceName指定文本的实例名称,depth指定实例的深度,x和y分别指定实例的x和y坐标,width和height分别指定实例的宽度和高度。
该方法创建的文本位于影片剪辑实例my_mc的内部时间轴中,其文本字段为空,但是可以方便地为其添加内容。
使用TextField类的removeTextField方法可以删除由createTextField方法创建的文本实例,其用法如下:


my_txt.removeTextField();
其中,my_txt是使用createTextField方法创建的文本字段的实例名。
操作练习
在主时间轴第1帧的【动作】面板中添加如下语句:
var i = 0;
var count = 0;
_root.onEnterFrame = function() {
   count++;
   count %= 5;
   if (count == 0) {
      _root.createTextField("txt"+i, i, 25+500*Math.random(), 0, 12, 12);
      with (_root["txt"+i]) {
         text = String.fromCharCode(Math.floor(26*Math.random())+65);
         autoSize = "center";
         type = "dynamic";
         textColor = 0x0000FF;
         border = true;
         borderColor = 0x999999;
         background = true;
         backgroundColor = 0xDDDDDD;
      }
      i++;
   }
   for (var j in _root) {
      _root[j]._y += 5;
      if (_root[j]._y>400) {
         _root[j].removeTextField();
      }
   }
};
_root.onKeyDown = function() {
   for (var j in _root) {
      if (_root[j].text == String.fromCharCode(Key.getCode())) {
         _root[j].text = "GOOD";
         _root[j].textColor = 0xFF0000;
         _root[j].borderColor = 0xFF0000;
         _root[j].backgroundColor = 0xFFFF00;
         break;
      }
   }
};
Key.addListener(_root);
变量count用于设置延迟,即令每5次onEnterFrame事件执行1次创建文本实例的操作,在创建TextField类的实例之后立即设置各种属性。在设置text属性时使用了String类的fromCharCode方法,它将一个表示键控代码的整数值转换为对应的字符形式,这里刚好取A~Z之间的任一字符。由于TextField类没有onEnterFrame事件处理函数,因此在_root的onEnterFrame事件中令场景中的所有实例下落5像素,并且判断实例是否超出窗口下边界,如果是,则将其删除。
在_root的onKeyDown事件处理函数中,逐一判断场景中的文本实例,如果文本内容与按键相同,则将该文本设置为"GOOD",且同时更改文本实例的其他相关属性。这里,break命令发挥了很大的作用,它使得按一次键最多只能改变一个文本实例的内容,然后强制跳出循环。
这就是一个简单的打字游戏.

文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。