制作平台游戏,需要方法停止运行

2023-12-25

我正在用 Flash 制作一个平台游戏。

我有一个目标类(该类包含目标精灵的代码,当你击中它时,它会继续游戏的下一部分)。

在目标构造函数内部,添加了2个事件监听器,它们如下:

addEventListener(Event.ADDED, beginClass);
addEventListener(Event.ENTER_FRAME, eFrame);

beginClass 函数很好,只运行一次,但 eFrame 是检查玩家是否击中目标的函数,因此它会不断运行。问题是,一旦玩家射门,eFrame 就会继续运行,同时在菜单中向玩家描述下一个场景。我的 eFrame 功能如下。

    private function eFrame(event:Event):void{
        if(hitTestObject(_root.mcMain)){
            var lastScore:int = _root.mainScore;
            _root.mainScore = lastScore;
            while (_root.lvlHolder.numChildren > 0) {
                    _root.lvlHolder.removeChildAt(0);
            }
            _root.mcMain.removeChildAt(0);
            _root.isInCut = true;
            if (_root.lvlCurrent == 1) {
                _root.gotoAndStop(2);
            } else if (_root.lvlCurrent == 2) {
                _root.gotoAndStop(3);
            } else if (_root.lvlCurrent == 3) {
                _root.gotoAndStop(4);
            }
        }
    }

第 2、3、4 帧是仅包含文本和一个向玩家显示消息的按钮的帧,然后玩家点击“继续”。我的问题是 eFrame 仍在尝试运行,但该类尚未实例化,并且一旦播放器继续,该方法就会导致极大的滞后。


在 Goal 中,_root 有什么意义?

无论如何,这就是我所做的: 更改事件ADDED to ADDED_TO_STAGE,这样,当事件被触发时,我们知道这个 Sprite 有一个stage财产。

addEventListener(Event.ADDED_TO_STAGE, beginClass);

去除eFrame来自构造函数的事件。将其添加到beginClass, with stage,像这样:

stage.addEventListener(Event.ENTER_FRAME, eFrame);

Now in eFrame,您可以通过舞台引用出色地删除事件。它之前不起作用,因为引用是错误的(无论它与_root多变的)。

stage.removeEventListener(Event.ENTER_FRAME, eFrame);

但是 - 请记住在这部分代码之前执行此操作:

while (_root.lvlHolder.numChildren > 0) {
    _root.lvlHolder.removeChildAt(0);
}

因为当精灵被移除时,它不会有stage财产不再了。请记住清理所有可能情况下的事件。我不完全确定stage是放置输入帧事件的正确位置,我只是这么认为,因为您之前称为 _root。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

制作平台游戏,需要方法停止运行 的相关文章

  • 将 MouseEvent.CLICK 添加到八哥图像

    我有一个容器有很多带有滚动的图像 我添加TouchEvent TOUCH作为事件监听器而不是MouseEvent CLICK 因为八哥不支持MouseEvent 问题是当我在图像之间导航时它会监听TouchEvent虽然我不需要这个 有什么
  • 在浏览器上录制视频并上传到LAMP服务器

    我已经尝试了很多东西 red5 jquery 网络摄像头 html5 但这些解决方案都没有录制视频并准备好上传到服务器 无论如何 html5 flash 等等 更好的跨浏览器解决方案 最好的 上传视频 音频 并将结果上传到服务器 我猜是通过
  • 使用 Javascript 检测 Pepper (PPAPI) Flash

    我们使用的是专有的文档查看器 它与某些 Chrome 版本中的 Pepper 版本的 Flash 配合得不太好 所以我希望能够检测到它并重定向到不同格式的相同内容 由于这个版本似乎落后于 NPAPI 版本 所以我一直在使用闪光检测 http
  • 用于商业 Web 应用程序的 Flash - 为什么不呢?

    我从事开发商业网络应用程序的行业 它们大多供内部使用 有时有合作伙伴区域 但很少可供公共互联网使用 它们是帮助公司运营业务的应用程序 一段时间以来 我有一个想法困扰着我 为什么不使用 Flash 到现在为止都是ASP NET AJAX 这还
  • Flash AS3 -domain.com/crossdomain.xml 和安全错误

    在代码中 我在 URLLoader 之前使用它 swf 将与许多不同的域一起使用 并且这将及时更改 Security allowDomain In http domain com crossdomain xml http domain co
  • 在 Actionscript-3 中优化 2D Flash 游戏的动态背景引擎

    编辑2 根据缺乏回复来判断 我开始怀疑我的问题是否足够清楚 请告诉我是否需要详细说明 注意 请参阅底部以获取代码更新 简短介绍 我正在用 ActionScript 编写一个二维 Flash 空间游戏 宇宙无限大 由于这个特性 背景必须动态渲
  • 在 Flex 中隐藏右键单击上下文菜单中的默认选项

    我正在开发一个 Flex 应用程序 我想为其添加一个上下文菜单 我用这段代码得到了它 var myMenu ContextMenu new ContextMenu myMenu hideBuiltInItems var defaultIte
  • 在浏览器中创建 bash shell 的可行性如何?

    主要是 我是 Unix 机器上的 C C 程序员 但是我会因为基于浏览器的 shell 访问 Linux 机器而放弃 所以 问题是 这有多难 什么方法最适合在网页中构建真正的 shell 级访问 闪光 JavaScript 我知道这确实是所
  • 创建对象的弱引用

    Actionscript 3 中是否可以创建对对象的弱引用 以便可以对其进行垃圾收集 我正在创建一些类以使调试更容易 因此如果仅在此处引用这些对象 我不希望这些对象挂在内存中 当然我不想用回调填充代码以删除对象 格兰特 斯金纳 Grant
  • 在 Flex 中以 HTTP Post 方式上传任意数据

    我们目前有一个 Java 小程序 可以生成大量数据并将其上传到我们的服务器 我们拥有的上传方法之一是使用 HTTP POST 到我们的服务器 其内容只是原始数据 没有多部分编码或任何内容 我正在考虑实现一个具有相同功能的 Flex 应用程序
  • ActionScript 2 移动对象

    我对 ActionScript 知之甚少 我有一个电影剪辑 我希望当我按下按钮 按钮或影片剪辑 时它沿 x 轴移动我不知道要使用什么代码 因为它需要是 Action Script 2 是否有教程或其他东西可以完成此任务 我找到了一个教程 当
  • Javascript 桥接到 Flash 以在 Flash 中存储 SO“cookie”

    读完这个问题后如何唯一地识别访问我网站的计算机 https stackoverflow com questions 216542 how do i uniquely identify computers visiting my web si
  • AS3 禁用数据网格内文本输入的可编辑/可选择

    我目前正在尝试禁用可选择 可编辑 或将 textInput 更改为动态以获得我想要的结果 我有一个带有下拉菜单和文本输入区域的自定义数据网格 但是 如果我的 型号 列中没有数据 我不想允许在相应的 购买价格 单元格中输入任何内容 col1
  • 如何在 ItemRenderer 内使用数据网格范围外的变量?

    我使用将项目数组绑定到数据网格ItemRenderer 我用data变量来控制可绑定数据 我也有someComponentVariable需要插入到每一行中 但它是在组件范围内声明的 因此数据网格似乎无法重新识别它 编译错误 我如何使用这个
  • DatagramSocket bind() 和 connect() 区别?

    我读了文档 http help adobe com en US FlashPlatform reference actionscript 3 flash net DatagramSocket html 但尚不清楚两者之间有什么区别bind
  • 垃圾收集最佳实践

    如果您要从显示列表中删除某个 MovieClip 并且该 MovieClip 又具有具有自己的事件侦听器的子 MovieClip 则是否有必要从子 MovieClip 中删除所有侦听器 或者只是直接从显示列表中删除的父级 MovieClip
  • 如何在 AS3 中将声音放大指定的分贝数?

    几天前 这是我的问题 我找到了答案 也许这会帮助别人 A 问 题的第一部分 可以使用Flash放大声音吗 SoundTransform 的 AS3 文档这样描述了音量属性 音量 范围从 0 静音 到 1 最大音量 从表面上看 这意味着您只能
  • 闪存应用程序的国际化

    我正在使用 Flash 应用程序 非 Flex 并且我想支持国际化 在flex中有一个很好的抽象ResourceManager 您可以在其中为每个语言环境提供资源包 动作脚本有等效的吗 怎么样全球化 http www servebox or
  • 最好的 Flash 音频/视频 + 交互服务器?

    我正在寻找有关 Flash 实时服务器的建议 目前 我们使用 Moock 的组合Unity http www moock org unity and Red5 http osflash org red5 但有几个问题 首先 我们正在转向 A
  • 如何以编程方式从 Flex 组件中删除验证

    如何以编程方式从 Flex 组件中删除验证 这是我的方法 public static function validateRequired txt TextInput errorMessage String This field is req

随机推荐

  • 你能查询一下 vim 中的变量/设置是什么吗?

    例如 在vim中 如果我想知道是否设置了自动读取 是否可以运行一个命令来告诉我 或者知道我的制表符设置是什么 就你而言 set autoread 将为您提供自动读取的当前值 一般来说 set foo 会给你期权的价值foo set将显示与默
  • bootstrap popover PreventDefault for click 在 Rails 3.2 应用程序中不起作用

    另一个人问了这个问题here https stackoverflow com questions 13231461 preventdefault in bootstrap popover 但没有给出答案或解决方案 这些引导文件列在我的 ap
  • 将 OpenCV 库与 Armadillo 库结合使用的最佳方法是什么?

    我正在使用 OpenCV 构建图像处理应用程序 我还使用 Armadillo 库 因为它有一些非常简洁的矩阵相关函数 但问题是 为了在 cv Mat 上使用犰狳函数 我需要频繁地从 cv Mat 转换为 arma Mat 为了实现这一点 我
  • Gmail 的上次活动

    如何从 Gmail 的上次帐户活动页面获取数据 img https i stack imgur com O73Yz png 该信息可在以下地址获取 问题是我不知道如何进行身份验证才能访问此页面 我想我应该以某种方式使用 OAuth 协议 但
  • iter() 不适用于 datetime.now()

    Python 3 6 1 中的一个简单片段 import datetime j iter datetime datetime now None next j returns Traceback most recent call last F
  • Scala 有智能编译器吗?

    我做了递归函数 就像 require L List Int L 模式匹配 Nil gt Thread dumpStack x xs gt print x function xs def function L List Int L match
  • 导入 @material-ui/pickers 时未捕获类型错误:Object(...) 不是函数

    我在用 material ui core 3 9 3 with material ui pickers 3 0 0 beta 1 当我从以下位置导入任何东西时 material ui pickers I get Uncaught TypeE
  • 将 NETBIOS 域转换为 FQDN(完全限定域名)

    简而言之 如何将 NETBIOS 域转换为 FQDN 细节 假设我位于域 A 中 并且拥有域 B 的用户凭据 该域 B 与域 A 具有信任关系 我可以对凭据进行身份验证 当我拥有的只是该域中某个经过身份验证的用户的凭据 包括 netbios
  • Javascript 是否可以创建外部闭包?

    通常 要创建闭包 您可以在另一个函数中创建它 并且它获取其父函数的范围 var parent function var a works var subfunction console log a works subfunction 我试图找
  • 直接与委托 - jQuery .on()

    我试图理解两者之间的这种特殊区别direct and 委托的事件处理程序使用jQuery on method http api jquery com on 具体来说 本段最后一句 When a selector提供后 事件处理程序被称为委托
  • 如何使用 Delphi 检测 Android 中的虚拟键盘事件

    我正在尝试使用 Rad studio Xe5 和 Delphi 开发 Android 应用程序 但遇到以下问题 屏幕底部有一个 Tmemo 按下它输入一些文本时 虚拟键盘会显示在我看不到的 Tmemo 上 我想检测显示键盘上的事件并移动更改
  • Vue Bootstrap 4中的三列复选框

    任何人都可以帮我通过 bootstrap 4 中的 vue js 实现 3 列布局吗 我想让我的复选框显示为 3 列 用户按顺序排列 我希望顺序从第一列开始 然后是第二列 最后是第三列 div div class div div
  • 如何获取处于“准备”状态的 docker 服务任务的日志

    我现在正在使用 docker 1 12 创建了一个服务 并注意到有一个阶段 preparing 当我跑的时候 docker service tasks xxx 我只能猜测在这个阶段图像正在被拉取或更新 我的问题是 如何查看此阶段的日志 或者
  • Sails.io.js io.socket.get('/user',...) 尚未在核心中实现

    创建例如assets js dependencies app io js with io socket on connect function socketConnected console debug This is from the c
  • php中session.use_cookies的使用

    我已经四处搜索以查找如果更改值对 php 会话的影响session use cookies to true or false但似乎对其工作方式没有影响 有什么用session use cookies在 php 中以及为什么需要它 这就是您希
  • ASP.NET MVC Remote属性方法参数总是传递null

    我有这个AdvertiserNameAvailable远程验证属性正在使用的方法 问题是AdvertiserNameAvailable正在调用而不将输入值传递给方法Name范围 当我进入该方法的调试时 我看到Name参数总是null pub
  • 如何在 GitHub Actions 中缓存 dotnet 安装

    我的 CI 管道中有两个步骤 一是缓存dotnet的安装路径 二是dotnet安装 并使用 windows 2019 图像 但系统永远不会识别 net 7可用 它始终安装 net 6 0 缓存还显示缓存了 200MB 但可能某些 PATH
  • 如何处理 iPhone 中 uitableviewcell 上每个按钮的切换按钮

    我的代码运行良好 但仅适用于单个单元格 当我定义 5 行时 它仅适用于最后一个单元格 如果我点击 1 个单元格 则值displayimage仅在最后一个单元格上 它不显示我单击的位置以及我单击的单元格如何处理每个单元格的toogle按钮更改
  • 为什么我要使用 Enumerable.ElementAt() 而不是 [] 运算符?

    这似乎是一个愚蠢的问题 但我还没有找到答案 所以就在这里 在这两种情况下 如果您未能检查集合的边界 您将收到 超出范围 异常 这只是编码风格偏好吗 如果有人需要一个例子 List
  • 制作平台游戏,需要方法停止运行

    我正在用 Flash 制作一个平台游戏 我有一个目标类 该类包含目标精灵的代码 当你击中它时 它会继续游戏的下一部分 在目标构造函数内部 添加了2个事件监听器 它们如下 addEventListener Event ADDED beginC