我目前正在尝试通过基本字体大小变量基于全局样式表动态设置文本大小。我目前正在使用方法 tfWidthController 来检查宽度是否大于所需宽度,如果是,则减小 css 中的字体大小并重新解析 css 并使其自动调整大小。但由于某种原因,它没有自动调整大小,而是正在操纵 css。你看到我做错了什么吗?感谢您花时间帮助我!
package com.intentionally censored.view {
import flash.display.MovieClip;
import flash.text.TextField;
import flash.text.StyleSheet;
import com.intentionally censored.model.MatchupModel;
import com.ff0000.ads.utils.Trace;
import com.google.analytics.debug.Info;
public class MatchupView extends MovieClip {
// on stage
public var maxTextFieldWidth = 150;
public var tf:TextField;
private var baseFontSize = 10;
public var $_tfCurrentWidth;
public function tfWidthController():void {
$_tfCurrentWidth = tf.textWidth;
trace('textfields current width is ' + $_tfCurrentWidth);
trace('textfields max width is ' + maxTextFieldWidth);
while ($_tfCurrentWidth > maxTextFieldWidth) {
trace ('$_tfCurrentWidth is '+$_tfCurrentWidth);
trace ('maxTextFieldWidth is '+maxTextFieldWidth);
baseFontSize-=1;
applyStyles();
}
}
private function get styles():StyleSheet {
var _styles:StyleSheet = new StyleSheet();
_styles.parseCSS("* {font-family:Playoff Bold Italic;font-style:boldItalic;}.em {font-size:"+(baseFontSize+2)+"px; }.redMicroTxt{font-size:"+baseFontSize+"pt;color:#c00000;}.medWhiteTxt{font-size:"+(baseFontSize+3)+"pt;color:#FFFFFF;}.redMediumTxt{font-size:"+(baseFontSize+6)+"pt;color:#c00000;}.whiteLargeTxt,.whiteMedTxt{font-size:"+(baseFontSize+6)+"pt;color:#FFFFFF;font-style:italic;}");
return _styles;
}
public function MatchupView() {
tfWidthController();
applyStyles();
}
protected function applyStyles():void {
tf.styleSheet = styles;
tf.autoSize = "center";
}
public function prepareFor( $_matchupModel:Object ):void {
Trace.out( this, 'prepareFor()' );
var _timeMessage:String = '';
var _dateMessage:String = 'LIVE NOW'; // -------------- logic for 160 includes "\r"
trace( $_matchupModel.gameStatus );
if( $_matchupModel.gameStatus != 'Live Now' ) {
_timeMessage = $_matchupModel.timeMessage;
_dateMessage = 'PM/ET';
}
tf.htmlText = '<span class="redMicroTxt">' + $_matchupModel.team1Rank + " "+'</span>'+
'<span class="whiteLargeTxt">' + $_matchupModel.team1 + '</span>'+
'<span class="medWhiteTxt"> vs </span>'+
'<span class="redMicroTxt">' + $_matchupModel.team2Rank + " "+'</span>'+
'<span class="whiteLargeTxt">' + $_matchupModel.team2 + '</span> '+
'<span class="redMediumTxt">' + _timeMessage +
'<span class="redMicroTxt">' + _dateMessage + '</span></span>';
}
}
}