Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 包含不可拖动按钮的可拖动菜单_Actionscript 3_Menu_Scroll_Drag_Flash Cs6 - Fatal编程技术网

Actionscript 3 包含不可拖动按钮的可拖动菜单

Actionscript 3 包含不可拖动按钮的可拖动菜单,actionscript-3,menu,scroll,drag,flash-cs6,Actionscript 3,Menu,Scroll,Drag,Flash Cs6,首先,我对Flash和AS3非常熟悉 我正在尝试为一个移动应用程序创建一个包含12个按钮的displayObject。由于有12个按钮将全部打开到单独的菜单中,它们显然都不适合移动设备屏幕。这就是为什么我希望在一个显示对象上显示所有按钮,可以上下拖动以显示屏幕上当前未显示的按钮 我在尝试这个过程中遇到了很多问题。 1) 如果我将包含按钮的对象设置为可拖动对象(位于按钮后面),我就不能通过单击按钮来拖动它(除非我找到一个没有任何按钮但对用户来说效率不高的最佳位置) 2) 如果我将包含按钮的对象设置

首先,我对Flash和AS3非常熟悉

我正在尝试为一个移动应用程序创建一个包含12个按钮的displayObject。由于有12个按钮将全部打开到单独的菜单中,它们显然都不适合移动设备屏幕。这就是为什么我希望在一个显示对象上显示所有按钮,可以上下拖动以显示屏幕上当前未显示的按钮

我在尝试这个过程中遇到了很多问题。 1) 如果我将包含按钮的对象设置为可拖动对象(位于按钮后面),我就不能通过单击按钮来拖动它(除非我找到一个没有任何按钮但对用户来说效率不高的最佳位置)

2) 如果我将包含按钮的对象设置为可拖动,并将其放在按钮前面,则我无法单击按钮以打开菜单并访问其中包含的内容

3) 出于某种原因,当我不想拖动按钮时,所有按钮都可以单独拖动。例如,我单击屏幕上的任何位置(无论触摸ID点是否在按钮上)以移动整个按钮列表,如果我碰巧单击了一个按钮,那么它将移动该按钮,而不是移动整个列表

因此,这里的主要问题是“如何创建按钮列表并使用拖动方法(如手机上的“设置”菜单)滚动列表,而不将按钮彼此分开拖动。”因此,包含的显示对象是可拖动的,并且按钮是可单击的

有个叫Glenn的家伙用他的例子做得很好:


但是,如果在他的示例中单击黄色按钮,可以将其从灰色框中拖出。我希望我的按钮相对于灰色框保持静止。因此,您可以移动灰色框,但黄色按钮仍保留在框内的相同位置,但您不能在框内拖动按钮。

我不熟悉智能手机的加速计事件,但我知道如何使用常规actionscript 3侦听器解决此问题。(您可以将其转换为智能手机侦听器使用的任何内容)

我想到的一个解决方案是在整个可拖动的框上设置一个鼠标向下的侦听器和一个鼠标向上的侦听器。当鼠标按下事件触发时,您启动一个计时器,使其在大约四分之一秒后熄灭,然后设置一个enter frame(或基于计时器的)函数来触发每一帧。这将在与当前鼠标位置(拖动框效果)对应的每一帧更新整个框的位置,当鼠标向上侦听器启动时,它将停止拖动(此时,如果鼠标向上,则用户根本不触摸屏幕)

还可以为每个按钮添加鼠标单击侦听器。通过这种方式,使用四分之一秒计时器,您知道如果用户只想单击按钮,那么他们会单击,在鼠标向下和鼠标向上事件之间留出不到四分之一秒的时间(这样拖动就永远不会开始),而只单击按钮。如果用户按住鼠标超过四分之一秒,那么你知道他们一定是在试图拖动整个东西

这是区分想要拖动框的用户和想要单击框内按钮的用户的唯一方法

显然,它不必是四分之一秒,它可以是你想要的任何长度的时间,甚至可能根本没有时间,但是当人们只想点击按钮,并且在点击时意外地滑动它时,这可能会把事情搞砸

如果您有任何问题,请发表评论,我会尽力帮助您