万卷书   首页 > 电脑书籍 > Flash > Flash MX 新的闪烁世界(第五天)
 
成功的第一步迈开了之后,让我们对上面丑陋的大米筐装修一下。


createEmptyMovieClip("mc",++dpt);

with (mc) {

createTextField("txt",++dpt,80,100,100,100);

txt.putRice=function(rice){if(rice){txt.text+=".";arguments.callee(--rice)}return;};

txt.border=1;

txt.multiline=1;

txt.background=1;

txt.wordWrap=1;

txt.putRice(254);

txt.putRice(36);

}


由于TextField是MovieClip的方法,所以我们出于学习而产生一个空的MovieClip来装这个文本区;程序运行后动态产生一个文本区,并有一个边框和白色的背景,最后用自定义方法putRice装载“大米”,由于Flash MX的递归调用最多只可以支持256层(0-255),所以我们还不能一下子装载300斤,只能分两次装(254+36),最后形成的结果如下:(图2)

(图2,看起来好整齐的大米,其实多余的部分已经漏到地低下去了……)

  嗯……这就结束了?我这个人Bad Mind,总想搞搞恶作剧,我让我做的textField米筐进行物理性破坏测试,让其高度(或宽)小于字体的最小高度后……发现Bug一个,textField失去了原有的位置和高、宽属性被挤到了屏幕的边缘,最搞笑的就是这个测试结果……让我们加入如下代码并观察(图3)


createTextField("txt",++dpt,80,100,100,3);

trace(txt._x);

trace(txt._y);

trace(txt._width);

trace(txt._height);

trace(txt.textwidth);

trace(txt.textheight);

txt.wordwrap=1;

var i=30;

while (i--) txt.text+="rice...";

(图3,倒……y可是100耶,宽也是100耶,没办法,把我的筐撑坏了……米撒了一地)

上一页 下一页