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

首頁 > 網(wǎng)站 > WEB開發(fā) > 正文

15.6.如何在一個表單內(nèi)通過ToolTips來返映一個錯誤

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

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

當(dāng)所有窗體都通過驗證以后, 這些提示都會通過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]);
}
//把數(shù)組清空
allErrorTips.length = 0;
}
var validatorErrorArray:Array =
Validator.validateAll(validatorArr);
//如果validatorErrorArray 這個數(shù)組為空, 即告訴你這里沒有任何錯誤可供拋出。否則, 你就要創(chuàng)建相及按置對應(yīng)的錯誤提示。
var isValidForm:Boolean = validatorErrorArray.length == 0;
if (!isValidForm) {
var err:ValidationResultEvent;
for each (err in validatorErrorArray) {
//通過設(shè)置目標(biāo)的x,y 坐標(biāo)可以設(shè)定它的位置
//如果程序中已經(jīng)存在一些版面管理的設(shè)定, 我們會使用getBounds 方法去取得它
//在舞臺上的實際位置
//由于ErrorEvent 的目標(biāo)屬性就是負責(zé)拋出事件的控件或組件, 所以這個屬性會用來放置錯誤提示。
var pt:Rectangle = this.stage.getBounds(err.currentTarget.source);
var yPos:Number = pt.y * -1;
var xPos:Number = pt.x * -1;
//現(xiàn)在創(chuàng)建錯誤提示
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>
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 甘洛县| 文成县| 大庆市| 安达市| 五家渠市| 牡丹江市| 桂平市| 吉安县| 宜黄县| 常德市| 恩平市| 株洲市| 孙吴县| 昌吉市| 建水县| 江安县| 嘉祥县| 光泽县| 通河县| 循化| 驻马店市| 义乌市| 六枝特区| 永吉县| 曲麻莱县| 井冈山市| 天全县| 洪雅县| 商洛市| 辽中县| 宁都县| 安化县| 吉安县| 德安县| 广德县| 牡丹江市| 墨脱县| 菏泽市| 阜平县| 沾益县| 闸北区|