2010年11月12日 星期五

[AS3] 以htmlText屬性在文字欄位TextField之中顯示SWF

[CTRL+ENTER]預覽時有不能強制轉型的錯誤訊息,但仍成功匯出可運作的swf。

TypeError: Error #1034: 強制轉型失敗: 無法將 flash.text::TextField@265e8061 轉換成 flash.display.DisplayObjectContainer。
at org.papervision3d.core.utils.virtualmouse::VirtualMouse/handleUpdate()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at org.papervision3d.core.utils.virtualmouse::VirtualMouse/update()
at org.papervision3d.core.utils.virtualmouse::VirtualMouse/setLocation()
at org.papervision3d.core.utils::InteractiveSceneManager/handleEnterFrame()




package 
{
 import flash.text.TextField;
 import flash.text.TextFieldAutoSize;
 import flash.display.Sprite;
 public class TextFieldSample_4 extends Sprite
 {
  private var aTextField:TextField = new TextField();
  private var aHtmlTxt:String;
  public function TextFieldSample_4()
  {
   aHtmlTxt = "< font size='18' color='#ffff00'>< p>
以下在< b>文字欄位< /b>< i>TextField< /i>顯示< u>SWF< /u>,記得要控制寬和高。< /p>
< /font>< img src='991028_pv3d_Cube_BitmapAssetMatrial.swf' width='320' height='220'>";
   //若HTML文字中有標籤,則不能使用autoSize屬性
   //aTextField.autoSize = TextFieldAutoSize.LEFT;
   aTextField.width = 400;//文字欄位寬度(像素)
   aTextField.height = 300;//文字欄位高度(像素)
   aTextField.x = 120; //文字欄位x座標
   aTextField.y = 40;  //文字欄位y座標
   aTextField.multiline = true;//多行文字欄位-true開啟
   aTextField.wordWrap = true;//文字換行功能-true開啟
   aTextField.border = true;//指定文字欄位是否具有邊框
   aTextField.borderColor = 0xffff00;//文字欄位邊框的顏色
   aTextField.background = true;//指定文字欄位是否具有背景填色
   aTextField.backgroundColor = 0x660000;//文字欄位背景的顏色,預設為白色
   //alwaysShowSelection為true而且文字欄位不在焦點中時,
   //Flash Player 便會將文字欄位中的選取範圍反白標示為灰色。
   aTextField.alwaysShowSelection = true;
   addChild(aTextField);//將aTextField加入顯示清單
   aTextField.htmlText = aHtmlTxt;//htmlText-以HTML顯示文字欄位內容
   aTextField.rotationY = -30; //旋轉y軸-30度
   aTextField.scaleX = 1.2; //從註冊點套用的物件水平縮放
  }
 }
}

沒有留言: