在.net中可以借助于多态实现,但AS3中目前尚没有多态,怎么实现?
sban写了一个例子,用于展示namespace的用法,及多态函数的实现及调用,在这里查看Demo及源码。
sban 于北京朝阳门
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="creationCompleteHandler(event)" layout="absolute" fontSize="12" width="526" height="169" horizontalAlign="center" verticalAlign="middle" viewSourceURL="srcview/index.html"> <!-- Copyright (c) 2007. sban <http://blog.sban.com.cn/> All rights reserved. About Author sban is an software architect focusing on flex/flash and .net, who living in Bejing China now. you can contact me in the following way: MSN/Email: sban#live.cn or visit sban blog: http://blog.sban.com.cn/ SOME LINKS: flex5 is a opensource blog basing on flex/flash. flex5 Google Group:http://groups.google.com/group/flex5/ flex5 Code:http://code.google.com/p/flex5/ fllib is an actionscript library using both in flex and flash: fllib Google Group:http://groups.google.com/group/fllib/ fllib Code:http://code.google.com/p/fllib/ This Program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This Program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. --> <mx:Script> <![CDATA[ import flash.net.navigateToURL; import mx.controls.ComboBox; import mx.controls.Alert; private var roleDelegate : Namespace; namespace userRole = "userNamespace"; namespace adminRole = "adminNamespace"; private function creationCompleteHandler(event : Event) : void { roleDelegate = adminRole; } userRole function login(event : Event) : void { Alert.show('user login.', 'sban blog'); } adminRole function login(event : Event) : void { Alert.show('admin login.', 'sban blog'); } private function roleSelectChangeHandler( event : Event) : void { if(ComboBox(event.currentTarget).selectedItem.data == 0) { roleDelegate = adminRole; }else{ roleDelegate = userRole; } } private function loginHandler(event : Event) : void { roleDelegate::login(event); } ]]> </mx:Script> <mx:Label text="Select Account Type pls :" x="63" y="74"/> <mx:ComboBox change="roleSelectChangeHandler(event)" x="232" y="72"> <mx:dataProvider> <mx:Object label="Administrator" data="0" /> <mx:Object label="User" data="1" /> </mx:dataProvider> </mx:ComboBox> <mx:Button label="Login" click="loginHandler(event)" width="88" x="374" y="72"/> <mx:LinkButton x="331" y="139" label="http://blog.sban.com.cn/" textDecoration="underline" useHandCursor="true" buttonMode="true" click="flash.net.navigateToURL(new URLRequest('http://blog.sban.com.cn/'))"/> </mx:Application>