AS3 - 我可以使用 addEventListener 检测变量值的变化吗?

2023-11-22

是否可以使用 EventListener 监听变量并检测该变量的值何时发生变化?谢谢。


如果你把它全部封装到一个类中,这很容易做到。我们将使用 getter/setter 方法。 setter 方法将在每次调用时调度和事件。

(注意:Setter 和 Getter 被视为属性)。您只需分配一个值,而不是调用一个方法(例如someVar = 5代替someVar(5);尽管 setter/getter 是函数/方法,但它们也被视为属性。

//The document class
package
{
  import flash.display.Sprite;
  import flash.events.Event;
  import flash.events.EventDispatcher;

  public Class TestDocClass extends Sprite
  {
    private var _model:Model;

    public function TestDocClass():void
    {
      _model = new Model();
      _model.addEventListener(Model.VALUE_CHANGED, onModelChanged);
    }

    private function onModelChanged(e:Event):void
    {
      trace('The value changed');
    }
  }
}

//The model that holds the data (variables, etc) and dispatches events. Save in same folder as DOC Class;
package
{
  import flash.events.Event;
  import flash.events.EventDispatcher;

  public class Model extends EventDispatcher
  {
    public static const VALUE_CHANGED:String = 'value_changed';
    private var _someVar:someVarType;

    public function Model():void
    {
      trace('The model was instantiated.');
    }

    public function set someVariable(newVal:someVarType):void
    {
      _someVar = newVal;
      this.dispatchEvent(new Event(Model.VALUE_CHANGED));
    }
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AS3 - 我可以使用 addEventListener 检测变量值的变化吗? 的相关文章

  • 将数据/变量从 Visual Basic 表单传递到 Flash 对象

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

    我希望在 ActionScript 中添加一个圆形滑块 非常类似于这一页 http interface eyecon ro demos drag vr html shows 它最终会改变对象的色调 返回 CMY 值 但如果它只是吐出程度 我
  • Actionscript 3主类是根,但不允许动画虚拟相机

    我最近开始使用 Actionscript 3 学习 Animate CC 我正在尝试使用 Animate 的 虚拟相机 功能 为我提供一个可以平移 旋转和缩放游戏的相机 当根没有子类时 很容易实现 Camera 例如 您可以在屏幕上放置一个
  • 在 javascript 中向元素添加多个事件监听器

    我已经设置并运行了一个小型拖放操作 但它使用内联 JavaScript 我更愿意将其全部移动到外部文件中 从理论上讲 这是一个简单的交换 但我在检查器中收到了引用错误 并且我的缩小失败了 据我所知 问题出在return 原始 HTML se
  • AS3 是否可以复制 Shape 对象?

    我正在尝试制作一个可用于复制的形状 这是我所做的 我正在尝试做的以及我陷入困境的解释 在 Flash IDE 画笔 中手动绘制形状 创建了一个包含形状的新影片剪辑 作为一个类导出 实例化该类 var mc MovieClip new sha
  • 换肤时访问 hostComponent 的自定义属性 - Flex 4.5、SDK 4.5

    使用 SDK 4 1 我能够从自定义皮肤访问自定义按钮组件的自定义属性 我当前正在工作的项目需要 SDK 4 5 但我无法访问这些属性 这是一个例子 自定义按钮组件
  • MSIE 和 addEventListener Javascript 中出现问题?

    document getElementById container addEventListener copy beforecopy false 在Chrome Safari中 上面将在复制页面内容时运行 beforecopy 函数 MSI
  • 如何在动作脚本 3 中设置/访问外部 swf 文件的动态文本字段?

    我正在处理一个 fla 文件 其中添加了一个 swf 文件 我如何在该 swf 文件的动态文本上设置文本 有没有直接设置文本的方法 我不想在 url 中作为参数传递 我试过这样 var rq URLRequest new URLReques
  • 更改由 AS3 添加到舞台的影片剪辑中的动态文本字段不起作用?

    当我更改动态文本字段的文本值时 文本字段只是变为空白 而不显示新值 我有一个名为 game board 的 MovieClip 由 AS3 动态添加到舞台上 舞台一开始是空白的 我有另一个名为 stage 2 的 MovieClip 它作为
  • 在 ActionScript 3 中在形状上绘制文本

    有没有办法仅使用 ActionScript 在 DisplayObject 或 Shape 中绘制文本 我在网上找到的唯一方法是创建 TextField 但我无法将 TF 添加到 DisplayObject 或 Shape Edit 解决了
  • 将 < 或 > 运算符作为参数传递给函数?

    我的函数里面有一个if 像这样的声明 if passedValue lt staticValue 但我需要能够传递一个参数来指示 if 表达式是像上面那样还是 if passedValue gt staticValue 但我真的无法通过 l
  • 使用jquery调用AS3外部接口

    我正在使用ExternalInterface 调用嵌入在html 页面中的Flash 应用程序 以下代码工作正常 我正在使用按钮进行测试 document ready function button click function var a
  • 运行时高压缩的 AS3 视频编码(H.264?)

    我需要在运行时将 AS3 中的视频图像数据 比如说显示对象 压缩为高压缩的字节数组 帧速率只需在 5 左右 但 1024x768 视频需要达到 使用 JPG 或 PNG 编码器可提供更高的 KB s 有没有开源方法可以在运行时对 as3 中
  • AS3 - for (... in ...) 与 for every (... in ...)

    以下代码执行完全相同的操作 之间有区别吗for each and for in var bar Array new Array 1 2 3 for var foo in bar trace foo for each var foo2 in
  • Adobe Air - 检测连接是否为 WIFI、3G 或 EDGE

    我需要确定设备正在使用哪种连接类型 在 iOS 上区分 WIFI 和 3G 似乎不是问题 使用网络信息ANE http www adobe com devnet air native extensions for air extension
  • AS3/Flash/Flex 中的枚举? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 相对于 AS2 我真正喜欢 AS3 的一件事是它增加了多少编译时类型检查 然而 它似乎有些不足 因为没有可用的类型检查枚举结构 在 A
  • as3 - 如何停止视频并分离 NetStream

    我有来自服务器的视频流 稍后我想并排添加另一个视频 那就好 我做到了 现在当我想删除视频时我的问题来了 我设法将其从显示中删除 但我可以听到视频仍在后台播放 那么我怎样才能停止播放该视频呢 这是我设置视频的代码 ns new NetStre
  • 在 Flex 中隐藏右键单击上下文菜单中的默认选项

    我正在开发一个 Flex 应用程序 我想为其添加一个上下文菜单 我用这段代码得到了它 var myMenu ContextMenu new ContextMenu myMenu hideBuiltInItems var defaultIte
  • Javascript 通过ExternalInterface 来刷新

    我想知道是否有人可以查看我的代码 我正在尝试使用以下代码将虚拟变量从 javascript 传递到 actionscript 3 HTML
  • 删除 CSS Transitionend 事件侦听器不起作用

    我在尝试删除 css Transitionend 事件侦听器时遇到问题 我可以添加监听器 e addEventListener transitionend function event transitionComplete event pr

随机推荐