2012-08-31 57 views
0

我在Flash中制作了一个预加载屏幕,我有一个预加载器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() + "%"; 
    } 

缩放效果很好,但文字是不会改变的,我设置的“自动声明舞台实例”,我有这样的一个错误(我不知道它做一些与我的问题,但不管怎么说):ReferenceError:错误#1065:变量Font1未定义。

如果我为ProgressText MC创建一个类,则会出现以下错误:1119:通过静态类型ProgressText的引用访问可能未定义的属性文本。我知道这是因为,我没有文本属性在我的课,但文本变量是某种内置的变量的文本域我想,所以我可能不需要定义它,我认为。

请帮

回答

1

它就像你正在尝试失败嵌入字体的声音给我。如果您可以在您设置TextField实例的TextFormat的位置发布代码,将会很有用,不过您可以尝试将字体直接设置为“Arial”或完全注释掉该行以将其排除为导致问题的原因。

如果你想创建一个自定义类的TextField(虽然目前还不清楚这是否是完全必要的,这种情况下),你将需要可以扩展您的自定义类TextField类(在这种情况下,它将继承TextField.text属性)或者实现一个你自己的setter来设置存储为该类的属性的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; 
     } 
    } 
} 
+0

这个问题是别人的东西在这里,但得到的答复是好的,我想,谢谢。 –