您现在的位置是: 软件 > 设计在线 > Flash > 基础教程 > 正文


-办公软件学校应用一览
-PHP编程释疑
-“选购”合适的虚拟光驱
-PHP数据库开发全接触

体验Flash MX(6):文本区的属性和方法
2002-03-23· ·Demon.S··DnVsystem

1 2  下一页

  我们前5天的努力现在成了热身训练,从今天此时起,我们才真正用到传说中的FlashMX,而今后的日子里,我想它会越来越精彩。拿到了Flash MX的正式版以后(47377KB),其实最主要的感觉就是Action面板的快捷键换掉了,当我习惯性按下F2的时候,结果出现了Output面板,当然我们可以从Window菜单找回Action面板的位置(F9,好像不太方便)。

  关于Flash MX的文本区的应用昨天我们已经开始了第一次的亲密接触,今天我们来深入了解一些文本区的属性和方法,并通过TextFormat对象来装修文本的样式。

  在昨天的大米试验中,虽然经测试还是有一些矛盾存在,不过这个方向是对的,我们继续给它添砖加瓦:

  // make box

  Movieclip.prototype.makeBox = function(x, y, l) {
   this.lineto(x, y+l);
   this.lineto(x+l, y+l);
   this.lineto(x+l, y);
   this.lineto(x, y);
  };  // prepare scroll template

  createEmptyMovieClip("scrollUp",2);
  with (scrollUp) {
   lineStyle(1,0x999999,50);
   moveTo(550,200);
   beginFill(0x345678,20);
   makeBox(550,200,30);
   endfill();
  }  // make scroll

  duplicateMovieClip(scrollUp, "scrolldown", 3);
  scrollUp._y-=60;
  // handler method

  scrollUp.onPress=function(){txt.scroll--};
  scrollDown.onPress=function(){txt.scroll++};
  // prepare text

  createTextField("txt",1,300,10,100,200);
  with (txt) {
   type="input";
   textcolor=0x333333;
   variable="tempcache";
   border=wordwrap=1;
   restrict="^demons";
  }  // custom method

  txt.onSetFocus=function(){
   trace("Ready for loading rice");
   txt.text=""
  };
  txt.onkillFocus=function(){
   trace("Gocha...");
   txt.putRice(200,"::::~")
  };

  txt.putRice = function (count,food) {
   if (count) {
    txt.text +=food;
    arguments.callee(--count,food);
   }
   return;
  };  // start

  txt.putRice(200,".");
  txt.putRice(200,".");
  txt.putRice(200,".");

  阿,有没搞错?这么长?晕阿。也许有的人会这样说……但是这确实是不可分解的一个整体,我们只能慢慢坐下来分析,其实我用到的一些部分代码基本都是这些天我们所接触的,尤其是MakeBox和我改进后的putRice装米器(经改进现在已经可以装载任何粮食)。

  这个例子直接的说明了很多对象的用法,例如在Flash MX中可以用ActionScript动态新建的Button对象,是我们给予onPress后的副作用(当移动上去会出现手,既是已经变成了Button对象);而其实基本上很多在Flash MX的对象都会有部分或全部MovieClip对象的proto继承。TextField也是其中之一,如果在TextField不为Input的时候,我们也可以设置_alpha、_rotation等MovieClip属性,这就很好的沿用了Movieclip的特性。

  对于textField中的restrict和variable属性,这些其实都不算是新的属性,在以前的版本,我们都可以通过面板来对他们进行控制,而此次我们只是简化了对其操作的方法,restrict是十分好用的,其基本功能是限制字符串的输入,不过也有别的用途,例如我们上面的例子restrict=”^english” 设定了只可以输入字符,但遇到用户输入english其中之一的时候就会把它们大写,既是uppercase;控制输入范围是用“-”连接两个范围界限字符,但如果你要输入^或者\这样的字符的时候,你需要做的只是加入\在他们的前面(\^ 和\\);变量variable则同样是以前的变量属性,指定了一个变量和该text内容相关联。

  textField的事件主要有4种:onsetfocus/onkillfocus、onchanged、onscroller。前两种处理焦点的激活和丢失事件,onchanged响应文本内容的变化事件,onscroller则响应滚动条拉动的事件。

  最后程序正常运行,当你开始的时候,看到一个仓库里面有很多米(真的很多,600斤),但却不知道其数量多少,你不得不拉动你的滚动闸来看看这个仓库里面到底有多少米,而米实在是不好区分数量了,这时,你一气之下买掉了所有的大米,换成了平等价值的玉米,这时再次拉动闸门,玉米的排放位置清晰可见。(如图1)

图1,完全手动写出来的感觉还是不够感性……)

1 2  下一页

■ 相关内容
 体验Flash MX(10):服务器/客户数据存储控制
 体验Flash MX(9):Button对象
 使用Flash MX制作动态相册
 体验Flash MX(8):控制时钟Timer
 用Flash MX制作飞舞的蝴蝶
 用Flash MX制作舞动的龙
 体验Flash MX(7):及时监听对象Listener
 体验Flash MX(5):网络数据和文本相关操作
 体验Flash MX(4):用代码绘图
 体验Flash MX(3):界面组件Components UI
 体验Flash MX(2):LoadMovie和LoadVars
 体验Flash MX(1): 打开闪烁的新世界
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!