`
ch_kexin
  • 浏览: 876878 次
  • 性别: Icon_minigender_2
  • 来自: 青岛
社区版块
存档分类
最新评论

TextField的htmlText属性中img标签的有趣现象

 
阅读更多
Flash的文字栏位(TextField)除了用来显示与输入一般文字之外
也有支持简单的HTML标签
像是<font>, <b>, <i>, <u>, <a>, <p>, <br>, <li>, <span>, <img>
其中比较特别的是<img>,除了可以用来表现外部图片以外
还可以通过src指定Linkage Identifier的方式
呈现Library内的MovieClip

以下便是用AS3在TextField内,再创建另一个TextField

package { 
  import flash.display.MovieClip; 
  import flash.text.TextField; 

  [SWF(width="300", height="200", backgroundColor="#FFFFFF")] 
  public class main extends MovieClip { 
   public function main() { 
    var outerTxt:TextField = new TextField(); 
    outerTxt.border = true; 
    outerTxt.x = 100; 
    outerTxt.y = 50; 
    this.addChild(outerTxt); 
   
    outerTxt.htmlText = "Outer TextField<img id='txt' src='flash.text.TextField' width='80' height='50' />"; 
    var innerTxt:TextField = outerTxt.getImageReference('txt') as TextField; 
    innerTxt.border = true; 
    innerTxt.text = "Inner TextField"; 
   } 
  } 
} 

可是TextField.htmlText却有一个问题
假如<img>标签前后没有其它文字,img会建立失败
如以下AS3程序:

package { 
  import flash.display.MovieClip; 
  import flash.text.TextField; 
  import flash.text.TextFormat; 

  [SWF(width="300", height="200", backgroundColor="#FFFFFF")] 
  public class main extends MovieClip { 
   public function main() { 
    var txt:TextField = new TextField(); 
    txt.border = true; 
    txt.x = 100; 
    txt.y = 50; 
    this.addChild(txt); 
   
    txt.htmlText = "<img id='img' src='flash.display.Sprite' />"; 
    trace(txt.getImageReference('img')); // null 
   
    txt.htmlText = " " "<img id='img' src='flash.display.Sprite' />"; 
    trace(txt.getImageReference('img')); // [object Sprite] 
   } 
  } 
} 

假如<img>标签前后没有其它文字,img会建立失败
这样说不对的,如果希望没有其它文字,则需要设置该textfield的wordwarp和multiline为true,就可以了
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics