我在flash中制作了一个预加载屏幕,我有一个preloader MovieClip,它包含progressBar和一个progressText MC-s都是由我创建的,在preLoader类中我使用的代码如下:
... ldrInf.addEventListener(ProgressEvent.PROGRESS, onProgress); ...
private function onProgress(e:ProgressEvent):void {
var percent:Number = e.bytesLoaded / e.bytesTotal;
progressBar.scaleX = percent;
progressText.text = Math.floor(percent * 100).toString() + "%";
}
缩放效果很好,但是文本没有改变,我设置了“自动声明舞台实例”,我有一个类似的错误(我不知道它必须对我的问题做些什么,但无论如何):< strong> ReferenceError:错误#1065:未定义变量Font1。
如果我为ProgressText MC创建一个类,那么我得到一个错误: 1119:通过带有静态类型ProgressText的引用访问可能未定义的属性文本。我知道它是因为,很好我的类中没有 text 属性,但是文本变量是我认为的文本字段的某种内置变量,所以我可能不必定义它。
请帮忙
答案 0 :(得分:1)
听起来我觉得你试图嵌入一个字体是不成功的。如果您可以在设置TextFormat
实例的TextField
的位置发布代码会很有用,但您可以尝试将字体直接设置为“Arial”或完全注释掉该行以排除它作为问题的原因。
如果要为TextField
创建自定义类(虽然不清楚在这种情况下是否完全必需),您需要在自定义类中扩展TextField
类(在在哪种情况下它将继承TextField.text
属性)或实现自己的setter来设置存储为类的属性的TextField
实例上的文本。
扩展TextField(继承)示例:
package
{
import flash.text.TextField;
public class CustomTextField extends TextField
{
public function CustomTextField()
{
}
override public function set text(value:String):void
{
// could do custom stuff here or omit override altogether if it isn't required
value = "custom " + value;
super.text = value;
}
}
}
TextField属性(合成)示例:
package
{
import flash.text.TextField;
public class CustomTextField extends Sprite
{
private var textField:TextField = new TextField();
public function CustomTextField()
{
this.addChild(textField);
}
public function setText(value:String):void
{
textField.text = value;
}
}
}