首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >只在测试单个场景时执行外部ActionScript

只在测试单个场景时执行外部ActionScript
EN

Stack Overflow用户
提问于 2014-08-14 18:06:56
回答 2查看 57关注 0票数 0

对于AS 3.0来说,我似乎有一个问题,当我在Flash中测试一个单独的场景时,在运行外部AS文件时,而不是在测试整个电影或从Flash进行测试的时候。有人知道问题出在哪里吗?

下面是AS文件中的代码:

代码语言:javascript
运行
AI代码解释
复制
package {
import flash.display.MovieClip;

public class Level1 extends MovieClip {

    public var myplayer:MyPlayer;

    public function Level1() {
        super();

        myplayer.x = 516;
        myplayer.y = 371;


        if (myplayer.x == 516)

        { 
            trace("player x is 516");       
        }

        else if (myplayer.y == 371)
        {   
            trace("player y is 371");
        }

    }
}
}

有什么想法吗?

编辑

我想我解决了问题。swf包含两个场景,外部AS文件在场景1开始时开始运行,但是myPlayer电影剪辑直到Scene2才被实例化,我认为这除了给出一个1009 null object error之外,还导致了我遇到的问题。

所以我只是删除了第一幕,现在一切都很好。也许我会把第一幕放在一个单独的SWF里?或者,有什么方法可以把剧本的执行推迟到某个场景?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-15 08:26:05

你的问题:

当doucment类的构造函数运行时,myPlayer还不存在,因此它抛出一个1009运行时错误,并在第一个引用myPlayer时退出构造函数。

解决办法:

  1. 将所有myPlayer代码放在MyPlayer时间线的第一帧上。或者使用当前文档类作为MyPlayer的类文件(而不是documentClass)。将对myPlayer的所有引用更改为this
  2. 侦听帧更改并检查直到填充myPlayer,然后运行代码。 this.addEventListener(Event.ENTER_FRAME,enterFrameHandler);函数enterFrameHandler(e):void { if( myPlayer ){ //运行myPlayer代码this.removeEventListener(Event.ENTER_FRAME,enterFrameHandler);} 如果您的帧速率是24 way,那么这段代码将每秒钟运行24次(直到它找到myPlayer),所以这不是最好的执行方式。
  3. 利用事件。向myPlayer的第一个框架(或MyPLayer的类文件)添加一个事件,告诉文档类它现在存在。 新事件(“stage.dispatchEvent”); 然后在document类上侦听该事件: stage.addEventListener("myPlayerReady",playerReadyHandler);playerReadyHandler(e: event ):playerReadyHandler{//您的播放器代码var myPlayer = MyPlayer(e.target);//您甚至可以从事件对象}获得引用。
票数 1
EN

Stack Overflow用户

发布于 2014-08-15 08:40:58

谢谢你的建设性的,有帮助的回答,LDMS。我以为我已经找到了解决办法,而我没有。你的建议奏效了。我所做的是将以下代码添加到MyPlayer的时间线中

代码语言:javascript
运行
AI代码解释
复制
        this.x = 516;
        this.y = 371;


        if (this.x == 516)

        { 
            trace("player x is 516");       
        }

        if (this.y == 371)
        {   
            trace("player y is 371");
        }

我从document类中删除了代码。现在一切似乎都很好。再次感谢你的帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25320297

复制
相关文章
如何更改SELinux模式
Security Enhanced Linux是一个Linux安全模块,用于强制或基于角色的访问控制。SELinux默认与CentOS和Fedora打包在一起,可以以三种模式之一运行:禁用、允许或强制执行。
温浪
2018/08/20
4.3K0
Audition如何更改音轨独奏模式 Audition更改音轨独奏模式方法【干货】+各版本安装
各版本安装获取:http://jiaocheng8.top/au.html?0ijggjk Audition是一款特别专业的电脑端音频处理软件,软件时Adobe旗下发布的,软件的兼容性非常高,能够支持
木子学Lee
2023/02/09
7980
Audition如何更改音轨独奏模式 Audition更改音轨独奏模式方法【干货】+各版本安装
更改WordPress Gutenberg编辑器的宽度
要更改WordPress Gutenberg编辑器的宽度,您需要为其加载自定义CSS规则。以下是如何快速更改宽度的概述,包括加载样式表和添加将增加Gutenberg编辑器内容区域宽度的特定规则。
许都博客
2021/06/16
8560
13 - 如何让两个列表首尾相接
1. 连接两个列表的方式有哪些? # 1. '+' a = [1, 3, 5, 6, 7] b = [2, 3, 3, 6, 8] print(a + b) # 2. extend a.extend(b) print(a) [1, 3, 5, 6, 7, 2, 3, 3, 6, 8] [1, 3, 5, 6, 7, 2, 3, 3, 6, 8] # 元组:'+' # 元组本身是只读的,没有extend方法 c = (1, 2, 3) d = (2, 3, 3, 4) print(c + d) (1,
ruochen
2021/05/22
6240
13 - 如何让两个列表首尾相接
PHPCMS更改后台编辑器样式
PHPCMS默认的后台样式用着不习惯,根前台的视觉差太大?没关系,改一下就是了。 后台编辑器样式文件 staticsjsckeditorcontents.css 把前台样式表中控制文字的那一部分拷贝进去稍微修改下即可,当然你可以自定义编辑器背景什么的,看个人喜好了。 我自己比较喜欢的样式现在分享给大家
李维亮
2021/07/09
1.4K0
CSS样式更改——列表、表格和轮廓
上篇文章主要介绍了CSS样式更改篇中的字体设置Font&边框Border设置,这篇文章分享列表、表格和轮廓,一起来看看吧。
前端皮皮
2020/11/26
2.9K0
如何使用 Python 检查两个列表是否反向相等?
在 Python 中使用列表时,在某些情况下,您可能需要比较两个列表是否反向相等。这意味着一个列表中的元素与另一个列表中的元素相同,但顺序相反。在 Python 中,我们可以使用反转和比较列表、使用 zip() 函数、将列表转换为字符串等方法检查两个列表是否反向相等。在本文中,我们将了解这些方法,并借助各种示例检查两个列表是否反向相等。
很酷的站长
2023/08/11
2110
如何使用 Python 检查两个列表是否反向相等?
青铜和黄金选手分别怎么玩转python列表?
举个例子哈,将列表[1, 2, 3, 4, 5, 6, 7, 8, 9]中每个数字都乘以2,你能想到几种方法?
朱小五
2020/02/20
2880
青铜和黄金选手分别怎么玩转python列表?
仿 iOS 列表的编辑功能 - 删除篇
在 iOS 的设置里面,有一种编辑的效果,进入编辑状态后,列表左边推出圆形的删除按钮,点击后再出现右边确认删除按钮,相当于给用户二次确认。看下在 Android 上如何实现。
NanBox
2019/07/09
9680
更改开发编辑器背景图片
按快捷键Ctrl+Shift+A出现一个对话框 输入Set Background Image 双击Set Background Image 选择要添加的图片的路径 设置透明度 点击OK 就可以查看效果了
院长技术
2020/11/11
9930
如何更改伪元素的样式
在前端开发中我们会经常用到伪元素,有时候需要通过js来修改伪元素的样式,那么有哪几种方式来修改伪元素的样式呢?
挥刀北上
2021/01/27
9.4K0
如何更改伪元素的样式
vim的编辑模式,命令模式以及vim的实践
vim编辑模式:               从一般模式进入编辑模式,只需按i、I、a、A、o、O、r和R中的某一个键即可,当进入编辑模式时,在屏幕的尾行显示INSERT字样(若支持中文,则显示插入)。按Esc键,从编辑模式回到一般模式。              i(小写) 从目前光标所在处插入。              I (大写)从目前光标所在处第一个非空格开始插入。              a 从光标所在处的下一个字符开始插入。              A 从光标所在处行的最后一个字符卡是插入
叶瑾
2018/06/14
1.6K0
我有两个列表,现在需要找出两个列表中的不同元素,怎么做?
前几天在帮助粉丝解决问题的时候,遇到一个简单的小需求,这里拿出来跟大家一起分享,后面再次遇到的时候,可以从这里得到灵感。
Python进阶者
2023/03/02
3.3K0
我有两个列表,现在需要找出两个列表中的不同元素,怎么做?
[Linux] 更新源地址列表及更改方法 [Ubuntu 16.04 LTS]
在修改source.list前,最好先备份一份,以便日后恢复 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 修改更新源:sudo gedit /etc/apt/sources.list 最后执行更新命令:sudo apt-get update
轻舞飞扬SR
2021/02/24
1.3K0
vim 列编辑模式
vim 有三种编辑模式,命令模式、输入模式、视窗模式,我们常用的是前两种模式,但是视窗模式还是非常不错的,进入 vim 编辑器,模式是命令模式,可以通过 i、a 等进入输入模式,也可以通过 v、 c+v 进入视窗模式。
王清培
2019/07/01
3.2K0
vim 列编辑模式
如何更改 Ubuntu 的终端的颜色
但是,如果你想要一个独一无二的的终端体验或者符合你自身品位的一些东西,你也可以改变你的 Ubuntu 的终端的颜色。
用户1880875
2021/11/08
14.7K0
小知识:vi如何使用列编辑模式快速插入
经常需要用到列编辑这种操作,现在很多超文本的编辑器都可以轻松实现。 但有时需要在vi界面直接使用,但是vi的列编辑操作因不常使用总是忘记现查。 这次干脆记录下加深印象。 vi编辑某个文本时,比如修改一个oracle的参数文件,历史实验时取的实例名字是jyzhao, 如今实验我已经成功改成prod了,如下:
Alfred Zhao
2022/06/02
1.4K0
取两个列表的交集_js两个数组取差集
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
3.5K0
点击加载更多

相似问题

两个日期选择片段-如何分别编辑日期?

24

SwiftUI -列表编辑模式-如何更改删除按钮标题?

26

SwiftUI -如何在编辑模式下更改列表的背景

18

更改列表项处于编辑模式时的高度

10

函数返回两个列表,如何分别保存?

112
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文