AS3如何在有多个影片剪辑时使一次只能点击1个影片剪辑

2024-03-07

好的,我有一个页面,上面有 5 个影片剪辑/按钮。当您将鼠标悬停在每一个上时,它们会亮起(OVER 状态),当您单击它们时,它们会展开(DOWN 状态)。问题是,如果您展开了多个影片剪辑(处于“向下”状态),它们会重叠并且看起来很糟糕。我想对它们进行编码,以便一次只能扩展 1 个。我怎样才能做到这一点?我想我需要在每个按钮上有一个 IF 语句,例如“如果任何其他影片剪辑处于 DOWN 状态,则禁用此影片剪辑的 DOWN 状态,如果没有其他按钮处于 DOWN 状态,则启用此影片剪辑的 DOWN 状态”或类似的内容但我不知道怎么写。请帮忙。以下是其中一个影片剪辑的代码:

Step0btn.stop();

Step0btn.addEventListener(MouseEvent.MOUSE_DOWN, onStep0Press);
Step0btn.addEventListener(MouseEvent.MOUSE_OVER, onStep0Over);
Step0btn.addEventListener(MouseEvent.MOUSE_OUT, onStep0Out);

function onStep0Press(event:MouseEvent):void
{
    // toggle between frame 1 and 3 on button press
    Step0btn.gotoAndStop(Step0btn.currentFrame == 3 ? 1 : 3);
}

function onStep0Over(event:MouseEvent):void
{

    if (Step0btn.currentFrame != 3)

    {

        Step0btn.gotoAndStop(2);

    }

}

function onStep0Out(event:MouseEvent):void
{
    // only switch back to UP state if the button is "pressed"
    if (Step0btn.currentFrame != 3)
    {
        Step0btn.gotoAndStop(1);
    }
} 

好的,我们已经解决了重叠影片剪辑的问题,但是在影片剪辑的“向下”状态下,另一个影片剪辑具有以下代码:

Step0img.stop();

Step0img.addEventListener(MouseEvent.MOUSE_DOWN, onStep0imgPress, false, 999);

function onStep0imgPress(event:MouseEvent):void
{
    Step0img.gotoAndStop(2);
    event.stopImmediatePropagation();
}

这使我可以单击嵌套的影片剪辑,甚至无需触发鼠标按下并关闭展开的影片剪辑。我认为禁用 MOUSECHILDREN 可能也会禁用此功能。


这是可以完成的一种方法:将上面的代码替换为按钮时间线上的此代码(或者更好的是创建一个类文件,并让每个按钮都将其作为基类,就像我的回答一样)这个问题 https://stackoverflow.com/questions/23351096/as3-multiple-rollover-objects/23355106#23355106- 那么您只需要拥有所有按钮共享的一个代码文件)

stage.addEventListener(MouseEvent.MOUSE_DOWN,globalMouseDown,false,0,true); //add a global mouse listener

function globalMouseDown(e:Event):void {
    //find out if the target is a descendant of this, if not, then something else was clicked.
    var tmpParent:DisplayObject = e.target as DisplayObject;
    while(tmpParent && tmpParent != stage){
        if(tmpParent == this) return;
        tmpParent = tmpParent.parent;
    }

    //something else was clicked that wasn't this, so go to the up state
    gotoAndStop(1);

}

stop();

addEventListener(MouseEvent.MOUSE_DOWN, onPress);
addEventListener(MouseEvent.MOUSE_OVER, onOver);
addEventListener(MouseEvent.MOUSE_OUT, onOut);

function onPress(event:MouseEvent):void
{
    // toggle between frame 1 and 3 on button press
    gotoAndStop(Step0btn.currentFrame == 3 ? 1 : 3);
}

function onOver(event:MouseEvent):void
{

    if (currentFrame != 3)
    {
        gotoAndStop(2);
    }
}

function onOut(event:MouseEvent):void
{
    // only switch back to UP state if the button is "pressed"
    if (currentFrame != 3)
    {
        gotoAndStop(1);
    }
} 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AS3如何在有多个影片剪辑时使一次只能点击1个影片剪辑 的相关文章

  • 如何让一个不可见的透明按钮起作用?

    查看 Unity 论坛和问答网站中的一些答案 如何制作隐形按钮的答案不起作用 因为删除与按钮关联的图像会使其不起作用 如何解决这个问题并保持不可见属性 同时允许按钮实际工作 这是 Unity 的怪异之处之一 100 的现实世界项目都需要这个
  • R 闪亮取消选中带有操作按钮的复选框组

    我有包含所选项目的 checkboxGroup 和 actionButton 我需要在 actionButton 上单击取消选中 checkBoxGroup wellPanel checkboxGroupInput datename Sel
  • 在系统范围内向 Mac 窗口标题栏添加按钮

    我希望能够添加一个按钮标题栏 https developer apple com design human interface guidelines macos windows and views window anatomy of Mac
  • 在 AS3 中将 Little-endian ByteArray 转换为 Big-endian

    AS3中如何将Little endian ByteArray转换为Big endian 我将 bitmapData 转换为 Big endian ByteArray 然后使用 Adob e Alchemy 将其推入内存 然后当我从内存中读取
  • 安全沙箱违规

    运行我的 Flash 应用程序时出现以下错误 违反安全沙箱 与 rtmp system ip live 的连接已停止 不允许从 file F Flash 工作 RTS RT vlab BIOTECH NEO 简单神经元的被动属性 vi 特征
  • 检查用户的 Flash 播放器是否具有音频功能。 (功能.hasAudio)

    是否可以检查用户是否有声卡 我找到了 Capability hasAudio 但不知道这是否是我应该查看的值 trace Capabilities hasAudio 指定系统是否具有音频功能 此属性始终true 文档对此并不清楚 但我认为
  • 将数据/变量从 Visual Basic 表单传递到 Flash 对象

    我很确定这个问题可以在 stackOverflow 上的某个地方得到解答 但我对此没有选择 我有一个 VisualBasic 窗体 上面有一个按钮对象 我希望该按钮有一个 onClick 过程 以便单击它可以将变量或其他命令传递到另一个正在
  • VideoJs 在 Firefox 中的 Flash 回退问题

    我尝试将 videoJs 添加到我的网站来播放 MP4 文件 所有这些在 Chrome 中都能完美运行 但当我转到 Firefox 不支持 MP4 文件 时 Flash 播放器停留在黑屏上 按钮不执行任何操作 简单的问题 为什么 我不明白
  • ActionScript 3.0 中缺少运算符重载

    我在 ActionScript 中最怀念的事情之一是缺少运算符重载 特别是 我通过在我的类中添加 Compare 方法来解决这个问题 但这在很多情况下没有帮助 比如当你想使用内置字典之类的东西时 有没有好的方法来解决这个问题 Nope 但添
  • 如何设置按钮的大小?

    我将按钮放在带有 GridLayout 的 JPane 中 然后我用 BoxLayout Y AXIS 将 JPanel 放入另一个 JPanel 中 我希望 GridLayout 中的按钮是方形的 我使用 tmp setSize 30 3
  • 在 Flex 选项卡式视图导航器之间切换

    我正在开发 FlexTabbedViewNavigatorApplication具有三个选项卡 ViewNavigator 元素 我想根据用户操作 通过 ActionScript 代码 从一个 ViewNavigator 切换到另一个 Vi
  • iPhone 上的 Flash(或 Silverlight)

    我对在 iPhone 上开发应用程序感兴趣 并且作为一名 NET 和 ActionScript 开发人员 我对 Objective C Cocoa Touch 编程的学习曲线有点害怕 我知道 Adob e 已经为 iPhone 准备好了 F
  • PHP 多个单选按钮

    我如何处理页面中的所有单选按钮
  • iOS 模拟器无法正确刷新

    我尝试模拟一个在 Xcode 9 中创建的非常非常简单的应用程序 我尝试在装有 iOS 11 2 的 iPhone6 的 iOS 模拟器中模拟它 我还测试了其他设备 结果相同 在真实设备上 该应用程序可以按预期运行 但在模拟器上却没有 我希
  • AxAcroPDF - Vista64 类未注册错误

    我们有一个用 C 编写的 WinForms 应用程序 它使用 AxAcroPDFLib AxAcroPDF 组件来加载和打印 PDF 文件 在 Windows XP 下一直运行没有任何问题 我已将开发环境移至 Vista 64 位 现在除非
  • 使用“onclick”和 JavaScript 获取按钮上的 X/Y 坐标

    我是一名 JavaScript 初学者 正在寻找一种方法来获取单击按钮时的 x 和 y 坐标 这适用于 Opera IE9 和 Chrome 但我无法让它在 Firefox 中工作 到目前为止 这是我的代码 JavaScript 中的函数
  • Random.Next() 的 Actionscript 3 实现

    我想知道 AS 3 中是否有很好的 Random Next 实现 基本上想要生成一系列给定种子的随机数 有时 最小和最大限制 类似于 C System Random 类 Random random new Random return ran
  • 在类之间调度事件

    我有一个自定义事件类 public class FFTDrawEvent extends Event public static const DRAW EVENT String drawEvent private var param Arr
  • 正确地将 flash.utils.Dictionary 序列化为 SharedObject

    我的 Flex 项目中有一个名为 HashMap 的便利集合类 它本质上是 flash utils Dictionary 的包装器 带有一堆便利方法和添加的 同步的 ArrayCollection 以便我可以将 HashMap 传递给需要的
  • Tkinter 按钮鼠标右键和左键单击有不同的命令

    我正在用 Python 制作扫雷游戏 并使用 tkinter 库来创建 gui 有没有 绑定到 tkinter 按钮两个命令的方法 一个是右键单击按钮时的命令 另一个是单击左键时的命令 通常 按钮仅设计用于单击 但 tkinter 允许您为

随机推荐

  • 移动网络应用程序可以访问设备的电话号码吗?

    例如 移动 Safari 我可以获得设备的电话号码吗 据推测 这会提示用户是否允许 就像位置一样 在某些情况下 该号码可能是通过网络运营商本身的标头发送的 即您不会通过 wifi 看到它 不同的运算符使用不同的标头 e g X UP CAL
  • 打字稿导入导出中持续出现未定义错误

    在多个文件中已经有很多关于打字稿的问题 例如 这个 打字稿导入 导出 https stackoverflow com questions 72692423 typescript import export 有趣的问题和答案 我简化并测试了它
  • 在 SQL Server 中使用链接服务器有哪些缺点?

    是否存在任何巨大的性能问题或安全问题 使用 SQL Server 2005 及更高版本 服务器迁移更加复杂 为多跳设置安全性可能很棘手 非 SQL Server 需要安装本地驱动程序 Sybase DB2 等 集群 异地灾难恢复 注册表项
  • 如何将healpy地图转换并保存到不同的坐标系?

    我有一张带有银河坐标的healpix 地图 我想将该地图转换为赤道坐标系 我知道我可以使用 mollview 函数在赤道坐标中绘制地图 你有什么办法保存这样的转换后的地图吗 谢谢 维努 以下函数更改地图的坐标系 def change coo
  • Symfony2 的 role_hierarchy

    我的 role hierarchy 有一个大问题 security role hierarchy ROLE ADMIN ROLE USER ROLE AUTHOR ROLE MODERATOR ROLE SUPER ADMIN ROLE A
  • 在 Linq to Sql 中返回多列?

    如何在 C 中使用 linq to sql 返回多列 我试图用以下方式结束我的查询 select new A Product A Qty 但这会返回一些匿名类型 我不确定该怎么办 如何返回它以及如何从中提取信息 我想把它放在某种数组中 th
  • 右对齐 Facebook 点赞按钮 iFrame 的内容?

    我需要右对齐 Facebook Like 按钮的内容 以便它们始终位于其设置的 宽度 的骑行侧 我可以在 Firebug 中通过将表格设置为 float right 来做到这一点 但如果我在 CSS 中定义该值 它似乎不起作用 Here s
  • 在 C# 中使用 jpegtran、jpegoptim 或其他 jpeg 优化/压缩

    我在网上商店收集了 100 种 也许是 1000 种 产品 其中每种产品都有 10 30 张图片 我需要在不损失图像质量的情况下尽可能优化图像的文件大小 我没有直接使用 jpegtran jpegoptim 或任何其他 jpeg 优化器 但
  • numpy 中的双梯形积分

    我有一个二维函数 f x y exp y x 我想使用 NumPy trapz 计算二重积分 int 0 10 int 0 10 f x y dx dy 经过一番阅读后 他们说我应该重复 trapz 两次 但它不起作用 我尝试过以下方法 i
  • 如何在 Cocoa 中创建并显示自定义工作表? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 这是新手问题 如何在 Cocoa 中创建并显示自定义工作表 就像 Safari 中的 添加书签 表 见下文 任务涉及哪些步骤 每一步如
  • 如何测试你的应用程序被杀死并重新启动?

    我想测试我的应用程序被杀死并在非主要活动中重新启动的情况 假装用户该应用程序只是恢复了 有人知道怎么做吗 我发现的所有想法都不起作用 因为它们都杀死了应用程序 然后该应用程序在主要活动中恢复 我实际上发现这更方便 您的应用程序在上一个活动中
  • 更改 Bazel 中的测试执行目录?

    我有一个简单的 Bazel 项目布局 如下所示 foo BUILD bazel testdata a txt test sh WORKSPACE 测试检查a txt exists foo test sh bin bash FILE foo
  • 如何向表中添加列?

    使用 react native sqlite storage 该应用程序已经在 Google Play 上上线 我想向现有数据库表添加两列 这样应用程序就不会因现有用户而崩溃 当您将列添加到现有表时 您会收到类似错误 error messa
  • 对 SBCL 中的“ql:quickload”和可执行脚本感到困惑

    我一直在尝试在我的可执行脚本中使用 Quicklisp 包 一个 简单的 工作示例是 usr bin sbcl script eval when compile toplevel load toplevel execute ql quick
  • 如何检查php脚本是否在本地服务器上运行?

    是否可以检查网站 php 是在本地运行还是在托管服务器上运行 如果网站在本地运行 我想启用一些日志 并且我不希望这些日志出现在在线网站上 我可以设置一个变量 local 1 但我必须在上传之前更改它 有没有办法自动执行此任务 本地服务器 W
  • 对于属性上的 NOTIFY 信号,如果我给它一个参数,会有什么区别?

    假设我有一个如下所示的类 class Something QObject Q PROPERTY int something READ getSomething NOTIFY somethingChanged signals void som
  • 更改 AngularJS ngTrim 行为

    我正在使用 AngularJS 版本 1 5 6 我有一个带有大量文本区域和文本输入的大型应用程序 我今天发现了一个错误 该错误是由 AngularJS 修剪文本类型输入的默认行为引起的 我想将此行为从默认修剪更改为默认不修剪 有没有一种简
  • 如何仅使用按位运算符实现 Bitcount?

    任务是仅使用按位运算符实现位计数逻辑 我让它工作得很好 但我想知道是否有人可以建议一种更优雅的方法 仅允许按位运算 没有 如果 因为 等 int x 4 printf d n x 0x1 printf d n x gt gt 1 0x1 p
  • 查找我的应用程序中的所有 mongoid 模型名称

    有没有办法找到我的 Rails 应用程序中的所有 Mongoid 模型名称 我可以通过获取 app models 文件夹中的所有文件来找到所有模型 但我特别想要 mongoid 模型名称 您可以在 Mongoid 3 1 及更高版本中执行此
  • AS3如何在有多个影片剪辑时使一次只能点击1个影片剪辑

    好的 我有一个页面 上面有 5 个影片剪辑 按钮 当您将鼠标悬停在每一个上时 它们会亮起 OVER 状态 当您单击它们时 它们会展开 DOWN 状态 问题是 如果您展开了多个影片剪辑 处于 向下 状态 它们会重叠并且看起来很糟糕 我想对它们