免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
在Flex中使用Delegate pattern來設(shè)計更好的對話框
在Flex中使用Delegate pattern來設(shè)計更好的對話框作者:未知  【字體:  】【顏色:  藍(lán) 
在Flex中使用Delegate pattern來設(shè)計更好的對話框
不同于C#和Java, Flex 并沒有定義一個明確的Dialog模式,我們常常使用popUp作為對話框, 可是每個人的實(shí)現(xiàn)方法各不相同,因此在這里我想介紹一種比較靈活的設(shè)計供大家參考.
 
Delegate是Flex中很有用的一個utility類,它起到了封裝一個callback同時保留其this指針的作用。它的用法很類似于C#中的Delegate只不過由于javascript是weak type,所以實(shí)現(xiàn)上更容易些。
我們可以在大多數(shù)需要callback的地方使用Delegate,而不用擔(dān)心this的問題。關(guān)于這個class的用法DevNet上有詳細(xì)的介紹,我就不多羅嗦了。這里主要用Delegate來設(shè)計一個比較靈活的Dialog。
在 應(yīng)用設(shè)計中,我們應(yīng)該注意到每個popup dialog應(yīng)該盡可能地被重復(fù)利用,打個比方一個輸入用戶信息的dialog, 即可能被建立用戶的函數(shù)使用也可能被修改用戶的函數(shù)使用。因此這個 dialog class不應(yīng)該依賴于它的parent.其作用就是接受一個user object讓用戶編輯并且在用戶按了ok后調(diào)用指定的callback并傳入被修改的user object.
以 下范例演示了如何利用Delegate來傳遞用戶數(shù)據(jù), 當(dāng)用戶調(diào)用createUser()的時候,Delegate封裝了onCreateUser()這個callback函數(shù),而當(dāng)modifyUser ()的時候,Delegate則封裝了onModifyUser()這個callback. 整個過程中User Dialog并不需要知道究竟是誰在呼叫它.
 
//--------------------------
// Application.mxml
//-------------------------
function beginPopUp(popUpClass, popUpSize, initObj)
{
var w = popUpSize.w;
var h = popUpSize.h;
initObj.x = (this.width-w)/2;
initObj.y = (this.height-h)/2;
var popUp = popupWindow(popUpClass, initObj);
popUp.setSize(w,h);
return popUp;
}
function createUser()
{
beginPopUp( UserDialog, {w:600, h:450}, {delegate:Delegate.create(this, onCreateUser), title:"Create user", user:new User()});
}
function onCreateUser(newUser:User)
{
trace("Created a new user");
}
function modifyUser(user:User)
{
beginPopUp( UserDialog, {w:600, h:450}, {delegate:Delegate.create(this, onCreateUser), title:"Modify user", user:user});
}
function onModifyUser(modifiedUser:User)
{
trace("Modified a user");
}
//-----------------------
// UserDialog.mxml
//----------------------
function doClose(isOk)
{
if (isOk)
{
delegate(dataObj);
}
this.deletePopUp();
}
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
子系統(tǒng)的封裝
你真的了解這些交互控件嗎?
彈出窗口lhgDialog API文檔
artDialog插件用法
GTK:對話框構(gòu)件
UG NX5.0的工程圖尺寸標(biāo)識工具的開發(fā)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服