国产探花免费观看_亚洲丰满少妇自慰呻吟_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è)定不同的風格來得出各種各樣的視覺效果, 例如: ackgroundColor, fontColor, fontType 等等。而使用ToolTip 中的setStyle 方法, 則可以把預(yù)先設(shè)計好的風格套用到每個新的錯誤提示中。例如:
+展開
-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;

當所有窗體都通過驗證以后, 這些提示都會通過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è)置目標的x,y 坐標可以設(shè)定它的位置
//如果程序中已經(jīng)存在一些版面管理的設(shè)定, 我們會使用getBounds 方法去取得它
//在舞臺上的實際位置
//由于ErrorEvent 的目標屬性就是負責拋出事件的控件或組件, 所以這個屬性會用來放置錯誤提示。
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ā)表
主站蜘蛛池模板: 衡山县| 桐梓县| 嘉峪关市| 荔波县| 玛纳斯县| 婺源县| 定南县| 盐山县| 泸州市| 洛川县| 遵义市| 荔浦县| 永济市| 绥化市| 梅河口市| 廉江市| 麻城市| 旌德县| 松原市| 贺州市| 治多县| 平湖市| 黄大仙区| 会同县| 宝兴县| 永济市| 昌黎县| 台州市| 偏关县| 临潭县| 庄浪县| 温泉县| 嘉义县| 宁远县| 秦皇岛市| 新竹市| 崇明县| 汝阳县| 苗栗市| 洮南市| 寿阳县|