【问题标题】:CreateJs MovieClip Instance nameCreateJs MovieClip 实例名称
【发布时间】:2015-02-25 05:39:06
【问题描述】:

嗨,伙计们(抱歉我的英语不好),

我已经坚持了一周,是否可以使用 createJS 获取影片剪辑实例名称(我已将影片剪辑手动放在阶段,我给它一个实例名称),在AS3中我可以使用movieclip.name来获取实例名称,我怎么能在createJS中做到这一点,当我使用this.movieclipName.name它总是在控制台日志中返回null,你呢有什么建议吗?感谢您的帮助?

【问题讨论】:

  • 只是好奇:为什么需要“名称”?您在 Flash 中使用的实例名称将成为父元素中的引用名称 (exportRoot.myInstanceName)。
  • 感谢您询问兰尼,我想做一个循环来扫描/读取父级具有特殊名称的所有影片剪辑,例如 object1object2 等。我正在考虑做类似的事情这个:for (var k in this){ /*get all movieclip instances name */ if(this[k].name.substring(0,7)=='object'){ //do something, like put it in array }} 但它不起作用,当我试图查看影片剪辑的名称时,它总是在控制台日志中返回 null。
  • 执行循环时,您可以像这样引用它(其中 i 是索引): var myobject = stage["object"+i].

标签: html movieclip createjs flash-cc


【解决方案1】:

@Ferry 非常感谢您的解决方案。终于搞明白了,我们无法通过myObject.name获取对象的实例名,因为对象名之前没有签名(看起来instance namename 在 html5 中)。这就是为什么它总是给出null。这是我获取对象的所有实例名称的脚本。

for (var a = 0; a <= maxObject - 1; a++) {
   var myObjectName = 'object' + (a + 1);
   var myObject = this[arrObject[a]];

   myObject.name = myObjectName;
}

感谢大家的回复。

【讨论】:

    【解决方案2】:

    我解决了这个问题:

    for (i = 1; i < 6; i++) {
    this["m" + i].addEventListener("click", clickme.bind(this));
    this["m" + i].hamdy=i;}
    

    因此您可以使用 var hamdy 传递 clickme 函数中的任何更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-12
      • 2016-09-17
      • 1970-01-01
      • 2013-09-16
      • 1970-01-01
      • 1970-01-01
      • 2017-03-17
      相关资源
      最近更新 更多