国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB開發 > 正文

15.6.如何在一個表單內通過ToolTips來返映一個錯誤

2024-04-27 13:52:20
字體:
來源:轉載
供稿:網友
15.6.1 問題
如何在多個不同的控件焦點下, 創建及顯示復數的驗證錯誤呢?
15.6.2 解決辦法
首先使用ToolTipManager 去創建一個新的ToolTip 類, 并把它放置在控件之上。然后創建一個Style 對象, 把它指派到剛剛創建的ToolTip 類之中, 以做出指定的字型及背景配色。
15.6.3 討論
這種錯誤提示的方式其實是基于ToolTip 組件, 它會在validator 報錯的情況被顯示。你可以通過設定不同的風格來得出各種各樣的視覺效果, 例如: ackgroundColor, fontColor, fontType 等等。而使用ToolTip 中的setStyle 方法, 則可以把預先設計好的風格套用到每個新的錯誤提示中。例如:
+展開
-ActionScript
errorTip.setStyle("styleName""errorToolTip");

要去顯示復數的tooltip 的話, 首先把相關的控件定位到舞臺上。例如:
+展開
-ActionScript
var pt:Point = this.stage.getBounds(err.currentTarget.source);
var yPos:Number = pt.y * -1;
var xPos:Number = pt.x * -1;
//現在創建一個錯誤提示
var errorTip:ToolTip =ToolTipManager.createToolTip(err.message,
xPos + err.currentTarget.source.width, yPos) as ToolTip;

當所有窗體都通過驗證以后, 這些提示都會通過ToolTipManager 的destroyToolTip 方法來進行刪除。所需的代碼如下:
代碼如下:
+展開
-XML
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxmlwidth="500"
height="400xmlns:cookbook="oreilly.cookbook.*"
creationComplete="init();">

<mx:Style>
/*在這里, CSS這個類是用來給予我們的tooltip一個像錯誤信息的外觀*/
.errorToolTip {
color: #FFFFFF;
fontSize: 9;
fontWeight: "bold";
shadowColor: #000000;
borderColor: #CE2929;
borderStyle: "errorTipRight";
paddingBottom: 4;
paddingLeft: 4;
paddingRight: 4;
paddingTop: 4;
}

</mx:Style>
<mx:Script>
<![CDATA[
import mx.controls.ToolTip;
import mx.managers.ToolTipManager;
import mx.events.ValidationResultEvent;
import mx.validators.Validator;
import mx.controls.Alert;
[Bindable]
private var validatorArr:Array;
private var allErrorTips:Array;
private function init():void {
validatorArr = new Array();
validatorArr.push(comboValidator1);
validatorArr.push(comboValidator2);
}
//以下是驗證過程的代碼:
private function validateForm():void {
//如果表格上已有錯誤提示, 我們就去把它移除
if(!allErrorTips) {
allErrorTips = new Array();
else {
for(var i:int = 0; i<allErrorTips.length; i++)
{
//移除tooltip
ToolTipManager.destroyToolTip(allErrorTips[i]);
}
//把數組清空
allErrorTips.length = 0;
}
var validatorErrorArray:Array =
Validator.validateAll(validatorArr);
//如果validatorErrorArray 這個數組為空, 即告訴你這里沒有任何錯誤可供拋出。否則, 你就要創建相及按置對應的錯誤提示。
var isValidForm:Boolean = validatorErrorArray.length == 0;
if (!isValidForm) {
var err:ValidationResultEvent;
for each (err in validatorErrorArray) {
//通過設置目標的x,y 坐標可以設定它的位置
//如果程序中已經存在一些版面管理的設定, 我們會使用getBounds 方法去取得它
//在舞臺上的實際位置
//由于ErrorEvent 的目標屬性就是負責拋出事件的控件或組件, 所以這個屬性會用來放置錯誤提示。
var pt:Rectangle = this.stage.getBounds(err.currentTarget.source);
var yPos:Number = pt.y * -1;
var xPos:Number = pt.x * -1;
//現在創建錯誤提示
var errorTip:ToolTip =
ToolTipManager.createToolTip(err.message,
xPos + err.currentTarget.source.width, yPos)
as ToolTip;
//套用errorTip類中的selector
errorTip.setStyle("styleName""errorToolTip");
//儲存錯誤提示以方便在日后驗證通過的時候把它移除
allErrorTips.push(errorTip);
}
}
}

]]>
</mx:Script>
<!-- our two validators -->
<cookbook:ComboValidator id="comboValidator1error="Please
Select A State
prompt="{stateCB1.prompt}"
source="{stateCB1}property="selectedItem"/>

<cookbook:ComboValidator id="comboValidator2error="Please
Select A State
prompt="{stateCB2.prompt}"
source="{stateCB2}property="selectedItem"/>

<mx:Form id="form">
<mx:FormItem>
<mx:ComboBox id="stateCB1"
dataProvider="{someDataProvider}prompt="Select A
State
"/>

</mx:FormItem>
<mx:FormItem>
<mx:ComboBox id="stateCB2"
dataProvider="{someDataProvider}prompt="Select A
State
"/>

</mx:FormItem>
</mx:Form>
<mx:Button label="validateclick="validateForm()"/>
</mx:VBox>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 贡山| 周口市| 贵定县| 敦煌市| 安化县| 贵港市| 梨树县| 吉木乃县| 卢氏县| 含山县| 西藏| 龙海市| 新宁县| 南部县| 新兴县| 河间市| 子洲县| 巴楚县| 巍山| 黄冈市| 新和县| 江西省| 大荔县| 东阳市| 边坝县| 应用必备| 崇阳县| 和硕县| 张家口市| 太湖县| 泸定县| 大足县| 西昌市| 泗阳县| 报价| 中江县| 寿宁县| 绥阳县| 遂宁市| 云安县| 兰溪市|