想要帮助在as3 / flash中创建一个列表

时间:2012-12-16 17:54:18

标签: actionscript-3 flash

我想在flash / as3中创建一个可滚动的列表,重要的是......如果用户想要向上或向下移动一些列表项...他可以通过拖动项目来做到这一点......所以当他按住某个项目时......该项目将变为可拖动状态,当用户在列表中上下移动时,其他项目应滑动到空白区域。它与智能手机中的行为相同......

我将弄清楚创建,数据填充,滚动和其他鼠标交互事件....我只是想要帮助这一行为....通过拖动来改变项目的顺序。如果只有某人可以提供基本算法或任何想法如何实现这一点..这就足够了。

提前致谢

编辑:

首先......我为没有发布有关该问题的任何细节而道歉...(这是我在本网站的第一篇文章),因此我正在添加所有研究以及到目前为止我所做的工作。

  • 该列表是一个大项目的一部分,因此我无法共享整个代码。

我已经做了什么:

  • 我创建了一个面具,一个容器,一个用于滚动容器的滚动条,要添加到列表中的项目,添加项目的方法,删除项目以及根据订单排列它们。
  • 因此它是一个可扩展的工作清单。
  • 整件事只在as3和flash中。
  • 我不知道flex,我也不想使用它。

我想要下一步:

  • 我想通过(项目上的mouse_down - >向上/向下拖动 - >位置上的mouse_up)顺序更改这些项目的顺序。

如果有人想要更多细节我可以分享。

提前致谢.. :))

2 个答案:

答案 0 :(得分:0)

将一个简单的List组件添加到应用程序

在此示例中,列表由标识汽车模型和包含价格的数据字段的标签组成。

创建一个新的Flash(ActionScript 3.0)文档。

将List组件从“组件”面板拖到舞台上。

在属性检查器中,执行以下操作:

输入实例名称aList。

将值200分配给W(宽度)。

使用“文本”工具在aList下创建一个文本字段,并为其指定实例名称aTf。

打开“动作”面板,在主时间轴中选择第1帧,然后输入以下ActionScript代码:

import fl.controls.List; 
import flash.text.TextField; 

aTf.type = TextFieldType.DYNAMIC; 
aTf.border = false; 

// Create these items in the Property inspector when data and label 
// parameters are available. 
aList.addItem({label:"1956 Chevy (Cherry Red)", data:35000}); 
aList.addItem({label:"1966 Mustang (Classic)", data:27000}); 
aList.addItem({label:"1976 Volvo (Xcllnt Cond)", data:17000}); 
aList.allowMultipleSelection = true; 

aList.addEventListener(Event.CHANGE, showData); 

function showData(event:Event) { 
    aTf.text = "This car is priced at: $" + event.target.selectedItem.data; 
}

此代码使用addItem()方法用三个项填充aList,为每个项分配一个标签值(显示在列表中)和一个数据值。当您在List中选择一个项目时,事件侦听器会调用showData()函数,该函数显示所选项目的数据值。

选择控制>测试电影以编译和运行此应用程序。

来源:http://help.adobe.com/en_US/ActionScript/3.0_UsingComponentsAS3/WS5b3ccc516d4fbf351e63e3d118a9c65b32-7fa6.html

答案 1 :(得分:0)

最后我从其他论坛得到了答案。

以下是我要添加到列表中的示例(行为)的链接:

http://www.learningactionscript3.com/2008/05/13/the-power-of-relative-positioning/

(位于底部的“高级对齐示例”)。