【问题标题】:Movieclip names影片剪辑名称
【发布时间】:2016-04-29 07:32:57
【问题描述】:

我在使用 AS3 和 addChild 方法时遇到问题。

首先,我创建了一个名为“容器”的对象。在容器内部,我使用名为“holder”的库中的空 MovieClip 创建了一个空对象。然后我在 container.holder 中创建 Movieclips 但我无法访问 MovieClips!有谁知道为什么?代码如下:

// Creating object
var container:Object {
   x: 30,
   y: 30
}

// Empty object
var eObject: MovieClip = new MovieClip();
container.holder = eObject;

// Creating Movieclips
var mc : MovieClip;
   for (var i : int = 0; i < 5; i++) {
      var mc: _myClip = new _myClip(); // _myClip is a MC from my library.
      mc.name = "myMc"+ i;
      mc.x = 10;
      container.holder.addChild(mc);
}

// Calling MovieClips
container.holder["myMc"+3].x = 40; // Nothing happens

【问题讨论】:

  • 容器必须有像 x 和 y 这样的“holder”属性?
  • 我需要调用container.holder[myMC3],比如un as2: container.holder.attachMovie(mc, "myMC"+i, 0);
  • 我不明白你在做什么。在 Object 中有一个 MovieClip 有什么意义?它也应该是一个 MovieClip 吗?当您尝试设置 Movieclip 的 x 属性时应该发生什么 - 电影剪辑甚至不可见,因为它只是在一个对象内。
  • 我正在做从 as2 到 as3 的 TonyPA 瓷砖教程。他创建了游戏对象。然后,在游戏对象内部,他创建了“剪辑”并添加了一个空的 mc 来保存图块和角色。在 as2 中,他使用以下方法附加图块:game.clip.attachMovie("tiles_mc", "t_"+i+"_"+j", 1);
  • 然后他可以调用 game.clip[name] 编辑图块(名称将是 t_i_j),我需要的是这个,但在 AS3 中。

标签: actionscript-3 flash-cs6


【解决方案1】:

您可以通过使用数组来降低name 属性的复杂性和不必要的使用:

var items:Array = [];

for (var i:int = 0; i < 5; i++) {
    var mc:_myClip = new _myClip();

    container.holder.addChild(mc);
    items.push(mc);
}

items[2].x = 40;

【讨论】:

  • 或者一个向量:var items:Vector. = new Vector.();但我真的不明白这里的“容器”的含义/用途、x 和 y 属性以及 MovieClip 列表......容器中的项目可能是用户想要的任何东西,而不会引发编译时错误(这真的是你想要什么?)。您应该完全忘记 AS2... 而 var container:Object { x: 30, y: 30 } 将在严格模式下抛出错误...
猜你喜欢
  • 1970-01-01
  • 2021-02-24
  • 1970-01-01
  • 1970-01-01
  • 2011-01-19
  • 2017-08-23
  • 1970-01-01
  • 1970-01-01
  • 2012-02-20
相关资源
最近更新 更多