主题:  请教动态文字效果

MythColor

职务:普通成员
等级:1
金币:0.0
发贴:43
#12003/5/20 14:46:24
用_root.creatTextField可以创建一个动态的文本,可以改变位置,颜色之类的属性
但是我想实现很多mc才有的变化效果,比如alpha渐变,变形,随机运动之类的,我想单纯的TextField对象不能实现吧,所以就想把TextField包含在一个MC(anyMC)里面
然后用
_root.anyMC.creatTextField("myTXT",1,100,100,80,20);
myTXT.Text=usersTXT;
myTXT.setTextFormat(myformat);
其中,usersTXT是用户输入的字符串变量,myformat是已经定义好的格式。
但是这样不能动态显示用户输入的字符,不知道是哪里错了。
大家帮我看看吧,谢谢!



UndeadCraft

职务:版主
等级:4
金币:10.0
发贴:1993
#22003/5/20 17:28:06
路径问题吧
在myTXT前面加上anyMC.



5D荣誉版主

职务:普通成员
等级:2
金币:1.0
发贴:515
#32003/5/21 9:14:31
alpha不行,套mc也不行,除非embed font,随机运动倒是可以,也没必要套mc



MythColor

职务:普通成员
等级:1
金币:0.0
发贴:43
#42003/5/21 9:46:47
那就是说,我想实现的效果现阶段还不能实现了?
除非是静态的文字,没有交互性,而且要一个一个地做?

斑竹说"除非embed font" 是什么意思? 嵌入式文字?? 是你的猜想还是现实的技术?

"也没必要套mc" ? 为什么? 是不是FlashMX在编译时就定了MC的内容,不支持动态变化MC的内容?



5D荣誉版主

职务:普通成员
等级:2
金币:1.0
发贴:515
#52003/5/21 23:03:55
embed font就是 嵌入式文字,我没试过语句控制embed font,TextField.embedFonts=true;
可以试试,不过中文是肯定不行的。
另外,textField本身就有_x和_y属性,实现个随机运动根本没有必要套mc的阿。



MythColor

职务:普通成员
等级:1
金币:0.0
发贴:43
#62003/5/23 11:09:32
斑竹所言极是.
不过我想做很炫的效果,不是变变_x,_y就能做到的呀,该怎么办呢?
我主要是想用面向对象的方法做,不做重复劳动....
对了,Flash可以创建对象吧,能不能自己定义一个这样的对象呢?怎么做呢?



5D荣誉版主

职务:普通成员
等级:2
金币:1.0
发贴:515
#72003/5/23 12:00:18
一般来说,function就是对象。
function me(){}
就是定义了一个me对象。
我不太明白你所说的“一个这样的对象”,指的是什么意思,
或者你可以把各个效果分开做,比如:
TextField.prototype.randomMovie=function(){
随机运动效果代码...
}
TextField.prototype.coolAlpha=function(){
alpha代码,这个倒是可以用和背景色差值变通的不完美实现
}
有空的话我还想写几段呢。



5D荣誉版主

职务:普通成员
等级:2
金币:1.0
发贴:515
#82003/5/23 12:07:38
另外,如果没有嵌入字体的话,_width,_height,_rotation可能都不行,我还真没仔细试验过这些,但是没有嵌入字体的话_width,_height都只是改变文本匡的大小,而不是里面文字的大小,倒是可以用setTextFormat来实现变大小,但是_rotation什么的可能没办法了。



MythColor

职务:普通成员
等级:1
金币:0.0
发贴:43
#92003/5/23 15:11:22
多谢斑竹指点!
其实我的问题的核心,就是怎样让动态文本实现所有MC能实现的视觉效果. 当然不只是运动啦,旋转变形啦之类的,还有颜色,还可以duplicate,然后做个拖尾或是残影的效果....

还有,我不太懂TextField.prototype.randomMovie=function()...
怎么继承啊?



5D荣誉版主

职务:普通成员
等级:2
金币:1.0
发贴:515
#102003/5/23 22:42:42
没有涉及到继承的问题,只是拓展了TextField的方法。
比如说:
TextField.prototype.x=function(){
....
}
调用只需 textFieldName.x()即可。
duplicate不行,mc的duplicate也只不过是复制原本的mc,而无法复制语句执行以后的mc。其实一个for循环倒也能解决问题。