大众计算机学习网

专门提供各种电脑教程

_level 属性、Key._listeners 属性、AsBroadcaster._listeners 属性

Admin | 2012-1-12 10:40:02 | 被阅次数 | 3463

  ①_level 属性

  _levelN

  对 _level N 的根时间轴的引用。在使用 _level 属性定位 SWF 文件之前,必须使用 loadMovieNum() 将 SWF 文件加载到 Flash Player 中。还可使用 _level N 定位由 N 分配的级别的已加载 SWF 文件。

  加载到 Flash Player 实例中的初始 SWF 文件会自动加载到 _level0 中。_level0 中的 SWF 文件为所有随后加载的 SWF 文件设置帧频、背景色和帧大小。然后,SWF 文件堆叠在处于 _level0 中的 SWF 文件之上的更高编号级别中。

  您必须为使用 loadMovieNum() 加载到 Flash Player 中的每个 SWF 文件分配一个级别。您可按任意顺序分配级别。如果您分配的级别(包括 _level0)中已经包含 SWF 文件,则处于该级别的 SWF 文件将被卸载并由新的 SWF 文件替换。

  可用性:Flash Player 4;ActionScript 1.0

  示例

  下面的示例在加载到 _level9 中的 SWF 文件 sub.swf 的主时间轴中停止播放头。sub.swf 文件包含动画,并且与包含以下 ActionScript 的文档位于同一目录中:

  loadMovieNum("sub.swf", 9);
  myBtn_btn.onRelease = function() {
   _level9.stop();
  };

  您可以将上一示例中的 _level9.stop() 替换为以下代码:

  _level9.gotoAndStop(5);

  此动作将 _level9 中 SWF 文件的主时间轴中的播放头转到第 5 帧,而不是停止播放头。

  ②_listeners(AsBroadcaster._listeners 属性)

  public _listeners : Array [read-only]

  对所有已注册侦听器对象的引用的列表。此属性专供内部使用,不用于直接操作。通过调用 addListener() 方法和 removelistener() 方法,可以分别在数组中添加和删除对象。

  您仅可以从使用 AsBroadcaster.initialize() 方法初始化的对象调用此属性。

  可用性:ActionScript 1.0;Flash Player 6

  示例

  下面的示例演示如何使用 length 属性确定当前已注册到事件广播器中的侦听器对象数量。如果将下面的代码添加到 AsBroadcaster.initialize() 条目的"示例"部分的第一个完整示例中,它即会生效:

  trace(someObject._listeners.length); // Output: 2

  对于高级用户,下面的示例演示如何使用 _listeners 属性列出所有注册到事件广播器中的侦听器以及每个侦听器对象的所有属性。下面的示例为第一个侦听器对象创建两个不同的侦听器方法。

  var someObject:Object = new Object(); // create broadcast object

  var myListener1:Object = new Object(); // create listener object
  var myListener2:Object = new Object(); // create listener object

  myListener1.someEvent = function() { // create listener method
      trace("myListener1 received someEvent");
  }
  myListener1.anotherEvent = function() { // create another listener method
      trace("myListener1 received anotherEvent");
  }
  myListener2.someEvent = function() { // create listener method
      trace("myListener2 received someEvent");
  }

  AsBroadcaster.initialize(someObject); // make someObject an event broadcaster
  someObject.addListener(myListener1); // register myListener1 as listener
  someObject.addListener(myListener2); // register myListener2 as listener

  var numListeners:Number = someObject._listeners.length; // get number of registered listeners

  // cycle through all listener objects, listing all properties of each listener object
  for (var i:Number = 0; i < numListeners; i++) {
      trace("Listener " + i + " listens for these events:");
      for (item in someObject._listeners[i]) {
          trace (" " + item + ": " + someObject._listeners[i][item]);
      }
  }

  ③_listeners(Key._listeners 属性)

  public static _listeners : Array [read-only]

  一个引用列表,引用对象是向 Key 对象注册的所有侦听器对象。此属性供内部使用,但是,如果您要确定当前向 Key 对象注册的侦听器的数量,此属性可能有用。通过调用 addListener() 方法和 removelistener() 方法,可以分别在数组中添加和删除对象。

  可用性:ActionScript 1.0;Flash Player 6

  示例

  下面的示例演示如何使用 length 属性确定当前向 Key 对象注册的侦听器对象的数量。

  var myListener:Object = new Object();
  myListener.onKeyDown = function () {
  trace ("You pressed a key.");
  }
  Key.addListener(myListener);

  trace(Key._listeners.length); // Output: 1