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

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

11.14.創(chuàng)建State的自定義動作(action)

2024-04-27 13:52:12
字體:
供稿:網(wǎng)友
11.14.1. 問題
我想在進入state 時創(chuàng)建State 對象的自定義動作。
11.14.2. 解決辦法
創(chuàng)建一個IOverride 接口的實現(xiàn)類,重寫所有需要傳遞自定義行為的所有方法。
11.14.3. 討論
要實現(xiàn)額外的state 動作,你需要創(chuàng)建自定義IOverride 對象,當進入state 時去執(zhí)行你自己的條件邏輯。任何實現(xiàn)此接口的對象都能被添加到state 的重寫數(shù)組中--任何組件都有下列方法:
apply(parent:UIComponent):void
該方法應(yīng)用重寫,執(zhí)行重寫(override)的自定義行為。將被改變的Parent 參數(shù)值會被存儲在此方法中以便當離開state 執(zhí)行撤銷操作。

initialize():void
初始化重寫

remove(parent:UIComponent):void
刪除重寫。在apply() 方法中記住的值將被恢復(fù)。當進入狀態(tài)時自動調(diào)用此方法。不應(yīng)直接對其進行調(diào)用

下面的例子中,實現(xiàn)IOverride 接口的類叫CustomOverride ,通過apply 語句應(yīng)用自定義條件邏輯:
+展開
-ActionScript
package oreilly.cookbook{
import flash.display.DisplayObject;
import mx.core.UIComponent;
import mx.states.IOverride;
public class CustomOverride implements IOverride {
private var widthValue:Number;
private var _target:DisplayObject;
public function CustomOverride(target:DisplayObject = null)
{
_target = target;
}
public function get target():DisplayObject {
return _target;
}
public function set target(value:DisplayObject):void {
_target = value;
//empty
public function initialize():void {}
//here we make sure to store the value of the parent before
we change it
//so that we can use this value in the remove method
public function apply(parent:UIComponent):void {
widthValue = _target.width;
if(_target.width > 500) {
_target.width = 500;
}
}
//here we use the stored value
public function remove(parent:UIComponent):void {
_target.width = widthValue;
}
}
}

這里新的CustomOverride 類被用來改變vbox 的大小,這個類可以被擴展去使用多個目標和做更可能多的事情而不僅僅局限于改變目標寬度,這里只是為了做個簡單的演示:
+展開
-XML
<mx:states>
<mx:State name="openState">
<cookbook:CustomOverride target="{box1}"/>
</mx:State>
</mx:states>
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 德令哈市| 沐川县| 泗阳县| 赤峰市| 铜鼓县| 章丘市| 华蓥市| 同德县| 台东市| 栖霞市| 彭州市| 沧源| 富阳市| 偏关县| 唐河县| 临桂县| 岐山县| 无为县| 甘肃省| 高台县| 海口市| 岳池县| 宜兰市| 金坛市| 新河县| 仪征市| 赣州市| 惠水县| 巴林左旗| 望谟县| 洛扎县| 城固县| 昭通市| 宜阳县| 博兴县| 清苑县| 兰西县| 江川县| 阿合奇县| 分宜县| 进贤县|