`
cloud21
  • 浏览: 397404 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

ActionScript 脚本的HashMap实现

    博客分类:
  • Flex
阅读更多
定义一个接口:
package com.util
{
public interface IMap
{
      function clear():void;   
   function containsKey(key:Object):Boolean;   
   function containsValue(value:Object):Boolean;   
   function get(key:Object):Object;   
   function put(key:Object,value:Object):Object;   
   function remove(key:Object):Object;    
   function putAll(map:IMap):void;   
   function size():Number;     
   function isEmpty():Boolean;   
   function values():Array;   
   function keys():Array;
} 
}
接口类的实现
package com.util{
/**
* <p>将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射一个值</p>
* <p>它的实现类有以下的类:</p>
* @author soda(弃天笑)
*/ 
import flash.utils.Dictionary;     
public class HashMap implements IMap
{     
    private var _keys:Array = null;   
         private var props:Dictionary = null;   
                      
                  public function HashMap(){   
                          this.clear();   
                  }   
                    public function clear():void{   
                          this.props = new Dictionary();   
                          this._keys = new Array();   
                  }   
                  public function containsKey(key:Object):Boolean{   
                          return this.props[key] != null;   
                    }   
                  public function containsValue(value:Object):Boolean{   
                          var result:Boolean = false;   
                            var len:uint = this.size();   
                          if(len > 0){   
                                 for(var i:uint = 0 ; i < len ; i++){   
                                          if(this.props[this._keys[i]] == value){
                                           result=true;   
                                       }else{
                                       result=false; 
                                       }
                                  }   
                          }else{
                          result= false;   
                          }
                          return result;     
                  }   
                  public function get(key:Object):Object{   
                        return this.props[key];   
                 }   
                 public function put(key:Object,value:Object):Object{   
                         var result:Object = null;   
                        if(this.containsKey(key)){   
                                 result = this.get(key);   
                                 this.props[key] = value;   
                         }else{   
                                 this.props[key] = value;   
                                 this._keys.push(key);   
                         }   
                         return result;   
                 }   
                 public function remove(key:Object):Object{   
                         var result:Object = null;   
                         if(this.containsKey(key)){   
                                 delete this.props[key];   
                                 var index:int = this._keys.indexOf(key);   
                                 if(index > -1){   
                                         this._keys.splice(index,1);   
                                 }   
                        }   
                         return result;   
                 }   
                 public function putAll(map:IMap):void{         
                         this.clear();      
                         var len:uint = map.size();   
                         if(len > 0){   
                                 var arr:Array = map.keys();     
                                  for(var i:uint=0;i<len;i++){   
                                         this.put(arr[i],map.get(arr[i]));   
                                  }   
                          }   
                 }   
                  public function size():Number{      
                          return this._keys.length;   
                  }   
                  public function isEmpty():Boolean{
                     return this.size()<1;       
                  }   
                  public function values():Array{   
                          var result:Array = new Array();   
                          var len:Number = this.size();   
                          if(len > 0){   
                                  for(var i:Number = 0;i<len;i++){   
                                         result.push(this.props[this._keys[i]]);   
                                 }   
                          }       
                          return result;   
                  }   
                  public function keys():Array{   
                         return this._keys;   
                }  

}
}

1
1
分享到:
评论

相关推荐

    ActionScript动作脚本字典

    ### ActionScript 动作脚本字典解析 #### 一、概述 《ActionScript 动作脚本字典》...通过深入研究本书中的知识点,开发者不仅可以提升自己的技术水平,还能更好地利用ActionScript和相关技术来实现自己的创意项目。

    教你如何编辑ActionScript脚本

    ### 教你如何编辑ActionScript脚本 #### Flash中的ActionScript概述 ActionScript是一种用于创建交互式内容的强大脚本语言,广泛应用于Adobe Flash环境中。它允许开发者为Flash动画添加复杂的功能,如用户交互、...

    FlashCS动画制作培训教程ActionScript脚本应用进阶完美版资料.ppt

    《Flash CS3动画制作培训教程ActionScript脚本应用进阶》 在Flash CS3中,ActionScript是动画制作的关键,它赋予了动画交互性和动态性。本教程专注于ActionScript脚本的应用进阶,旨在帮助学习者提升在Flash CS3中...

    很多朋友经常询问关于Flash的ActionScript脚本语句的用法.mht

    很多朋友经常询问关于Flash的ActionScript脚本语句的用法.mht

    ActionScript 动作脚本

    ### ActionScript 动作脚本 #### 1. Actions(动作) 在ActionScript中,**动作**是指程序语句,这些语句构成了脚本的核心部分。通过这些动作,开发者能够控制应用程序的行为,实现复杂的交互逻辑。例如,可以使用...

    基于ActionScript脚本的Flash音乐可视化效果源文件.rar

    基于ActionScript脚本的Flash音乐可视化效果源文件,类似Windows自带的播放器播放音乐时候显示的那些效果,音乐曲线,频谱之类的,动态变化的,反正有很多种了,这是用Flash的AS3脚本编程来实现的,对AS3感兴趣的,...

    初级Flash脚本ActionScript.ppt

    ActionScript是Adobe Flash中用于创建交互式内容的关键脚本语言,它允许开发者向动画或应用程序添加动态功能。这篇初级教程涵盖了ActionScript的基础知识,包括如何编写脚本、事件模型的理解以及基本的数据类型和...

    聊天室ActionScript 3.0实现

    本项目“聊天室(ActionScript 3.0实现)”显然涉及到使用ActionScript 3.0来构建一个实时通信的在线聊天平台。以下是对这个主题的详细说明: 1. **ActionScript 3.0基础**:ActionScript是基于ECMAScript的一个...

    聊天室(ActionScript 3.0实现)

    【ActionScript 3.0 实现聊天室详解】 ActionScript 3.0 是Adobe Flash Platform中的编程语言,用于创建互动式内容、游戏以及富互联网应用(RIA)。在本项目中,我们将深入探讨如何使用ActionScript 3.0来构建一个...

    聊天室实例开发附源码(ActionScript 3.0实现)

    ActionScript是Adobe Flash Professional和Flex SDK中使用的主要脚本语言,主要用于创建交互式的Web内容,如游戏和多媒体应用程序。 【描述】中的关键词"聊天室实例开发"表明这是一个实际的项目,目的是教授或展示...

    本地播放器ActionScript 3.0实现

    本地播放器(ActionScript 3.0实现)是学习SQL数据库的很好例子,可以下来看看!!!

    使用Flash脚本控制示例[FlashActionScript.rar]-精品源代码

    本资源“使用Flash脚本控制示例[FlashActionScript.rar]”包含了一系列的精品源代码,旨在帮助开发者深入理解并掌握Flash中的ActionScript编程技巧。 ActionScript是基于ECMAScript的一种脚本语言,主要应用于Adobe...

    Actionscript 交叉脚本与跨域访问

    Actionscript 交叉脚本与跨域访问Actionscript 交叉脚本与跨域访问

    ActionScript3.0 如何实现自定义全屏 源代码

    在ActionScript3.0中实现自定义全屏功能对于提升用户体验至关重要,特别是在开发视频播放器时。全屏模式可以让用户沉浸在内容中,提高视觉享受。 首先,我们要理解在AS3中实现全屏的基本概念。全屏模式分为两种:...

    利用ActionScript实现Flash开发游戏.pdf

    利用ActionScript实现Flash开发游戏.pdf

    基于ActionScript 3.0实现本地播放器

    在本项目"基于ActionScript 3.0实现本地播放器"中,我们将深入探讨如何利用这一强大的脚本语言来构建一个能够处理多媒体文件,如音频和视频的播放器。 ActionScript 3.0相对于早期版本有了显著的改进,包括更严格的...

    本地播放器(ActionScript 3.0实现)

    本项目将深入探讨如何使用ActionScript 3.0来实现一个本地播放器。 在ActionScript 3.0中开发本地播放器,我们需要理解以下几个核心概念和技术: 1. **类和对象**:ActionScript 3.0是基于面向对象的编程语言,这...

    ActionScript 3.0实现PurMVC地图编辑器.src.zip

    1、地图编辑器; 2、purMVC示例,有封装和重写,方便管理; 3、MornUI示例; 4、资源管理; 5、自定义事件,有优化处理,提高效率; 6、Adobe Air的本地资源处理;...7、JSON输入输出解码配置文件;

Global site tag (gtag.js) - Google Analytics