返回首頁

實現Flash動態文本框內動態文本內容自適應方法

時間:2011-06-29 01:49來源:知行網www.bccsxs.icu 編輯:麥田守望者

這樣一道題關于flash的:flash場景中有一個文本框,它的長和寬是已知的但是值不固定(可能是10×20也可能是462×139還有可能其他),然后我們有一個字符串長度已知但是同樣不固定(可能1個字也可能562個字還可能其他)。目前我們要實現,調整字的大小使這些字要填滿這個文本框,不能有滾動(字要完全顯示出來)也不能空很大的空出來最好剛剛填滿。
  這個問題困擾了我3、4天了還是沒有辦法解決其中的一些問題,寫下我的實現辦法。

  先我設想文本框和場景一樣大,拖動flash影片的時候文本框長寬自然改變,但是值也是可以通過Stage獲取的。然后文本內的文字設置一個變量。現在問題就變成無論怎么拖動這個flash,里面的自都是滿滿的填滿了真個文本框,沒有隱藏也沒有太多空白。如下圖
 

實現Flash動態文本框內動態文本內容自適應方法
 我的代碼

stop();
Stage.scaleMode = “noScale”;
Stage.align = “TL”;
Stage.showMenu = false;
var i_txt:String = “其實電腦方面懂的太少其實電腦方面懂的太少其實電腦方面懂的太少”;
var t_w:Number = Stage.width-10;//減去邊框霓虹燈的寬度
var t_h:Number = Stage.height-10;//減去邊框霓虹燈的高度
  
var xn:Number = Math.ceil(Math.sqrt(i_txt.length * ((Stage.width-14) * 76) / (67 * (Stage.height-14))));//是對每行字體個數的估算,下面是對字行數的估算,問題就在這里。
var yn:Number = Math.ceil(i_txt.length/xn);
setProperty(”_root.nhd_b”, _y, Stage.height-3);//霓虹燈寬3像素,這里設置霓虹燈底部的邊框
setProperty(”_root.nhd_r”, _x, Stage.width-3);//霓虹燈右邊的邊框
this.createTextField(”my_txt”, this.getNextHighestDepth(), 5, 5, t_w, t_h);//畫出文本框
my_txt.type = “static”;
my_txt.multiline = true;
my_txt.border = true;
my_txt.wordWrap = true;
my_txt.selectable = true;
my_txt.hscroll = 0;
my_txt.text = i_txt;
var my_fmt:TextFormat = new TextFormat();
my_fmt.size = Math.floor((t_w-4)/(xn));//估算字的大小
my_fmt.color = 0xFF0000;
my_fmt.align = “left”;
my_fmt.leftMargin = 0;
my_fmt.rightMargin = 0;
my_fmt.indent = 0;
my_fmt.leading = 0;
my_fmt.letterSpacing = 0;
my_fmt.kerning = true;
my_txt.setTextFormat(my_fmt);
var sizeLis = new Object();
sizeLis.onResize = function() {
setProperty(”_root.nhd_b”, _y, Stage.height-3);
setProperty(”_root.nhd_r”, _x, Stage.width-3);
var xn:Number = Math.ceil(Math.sqrt(i_txt.length * ((Stage.width-14) * 76) / (67 * (Stage.height-14))));
var yn:Number = Math.ceil(i_txt.length/xn);
my_txt._width = Stage.width-10;
my_txt._height = Stage.height-10;
my_fmt.size = Math.floor((Stage.width-10-4)/(xn));
};
Stage.addListener(sizeLis);
 
------分隔線----------------------------
標簽(Tag):FLASH FLASH實例教程 flash實例 flash源碼 ActionScript
------分隔線----------------------------
推薦內容
猜你感興趣
赛车pk10官网开奖记录