国产探花免费观看_亚洲丰满少妇自慰呻吟_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>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广元市| 洱源县| 嘉荫县| 子长县| 漳平市| 余江县| 江永县| 吉安市| 三河市| 邵东县| 鸡西市| 湖州市| 错那县| 鄂托克旗| 师宗县| 克拉玛依市| 阿拉善盟| 桦南县| 阿鲁科尔沁旗| 徐水县| 建瓯市| 德州市| 漳州市| 孙吴县| 桓仁| 鹰潭市| 天台县| 敦煌市| 色达县| 平邑县| 阿拉善左旗| 沈阳市| 高州市| 阿克苏市| 汝阳县| 广昌县| 方山县| 宁晋县| 兴和县| 阆中市| 革吉县|