| 成功的第一步迈开了之后,让我们对上面丑陋的大米筐装修一下。
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耶,没办法,把我的筐撑坏了……米撒了一地)
|