AS3的Dictionary是个好东西

最近在学习Flash的简单东西。为了数据和表现的分离,我把读取数据的代码做成一个类,跟显示数据的控件分开。

在第一帧的AS中,将一个数组的数据用循环显示到控件上,控件也是一个数组。但是,如果要给控件加上事件处理,比如点击,在处理函数中想获得数据,怎么办呢?

最直接的办法是用Array.indexOf()函数取得控件在数组中的下标,然后再取数据数组中的对应下标的元素,不是太好。

本来我是想在控件中找类似“setAttribute/getAttribute”的函数的(Java的HttpServletRequest有get/setAttribute,另外Eclipse JDT的编译器语法结构类都有get/setProperty:) )。后来发现了帮助中在讲Array时提到两种,一种indexed,一种associative,后者就是Dictionary。

你可以写,

var map:Dictionary = new Dictionary();
map[displayObject] = data;

在event handler里,map[e.target]就可以取得对应数据了。嗯,也可以叫做Map

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.