【问题标题】:Converting String values to MovieClip in AS 3.0在 AS 3.0 中将字符串值转换为 MovieClip
【发布时间】:2013-04-17 00:33:05
【问题描述】:

我正在尝试将字符串数组转换为舞台上已经存在的电影剪辑名称。

这就是我的做法,但似乎没有用。 我在舞台上有 11 个电影剪辑。它们的实例名称是“bmc1”、“bmc2”等。 所有这些 BMC 影片剪辑都位于名为“bars_mc”的剪辑中。所以这就是我现在的编码方式。

var myBtnArray = ['bmc1', 'bmc2', 'bmc3', 'bmc4', 'bmc5', 'bmc6', 'bmc7', 'bmc8', 'bmc9', 'bmc10', 'bmc11'];
for each (var btn in myBtnArray){
    bars_mc.MovieClip(getChildByName(btn)).gotoAndPlay('open');
}

这不起作用。 我试过这样做:

this[btn]

那也没用。 这是在 AS 3.0 中编码的。

需要有人帮我找出将字符串转换为电影剪辑的正确方法。

感谢您的帮助。

【问题讨论】:

  • 为什么不用电影剪辑而不是字符串来填充数组?

标签: actionscript-3


【解决方案1】:

我认为问题很可能是您在错误的位置添加了MovieClip 演员表,好像对象bars_mc 上有一个属性MovieClip。

这个例子涉及了一个额外的行,但应该更清楚一点:

var myBtnArray = ['bmc1', 'bmc2', 'bmc3', 'bmc4', 'bmc5', 'bmc6', 'bmc7', 'bmc8', 'bmc9', 'bmc10', 'bmc11'];
for each (var btn:String in myBtnArray) {
    var btnClip:MovieClip = bars_mc[btn] as MovieClip;
    btnClip.gotoAndPlay('open');
}

更接近原始版本的版本是:

var myBtnArray = ['bmc1', 'bmc2', 'bmc3', 'bmc4', 'bmc5', 'bmc6', 'bmc7', 'bmc8', 'bmc9', 'bmc10', 'bmc11'];
for each (var btn:String in myBtnArray) {
    MovieClip(bars_mc[btn]).gotoAndPlay('open');
}

【讨论】:

    【解决方案2】:

    您应该像这样将 MovieClips 存储在数组中:

    var myBtnArray = [bars_mc.bmc1, bars_mc.bmc2, bars_mc.bmc3, bars_mc.bmc4, bars_mc.bmc5, bars_mc.bmc6, bars_mc.bmc7, bars_mc.bmc8, bars_mc.bmc9, bars_mc.bmc10, bars_mc.bmc11];
    for each (var btn in myBtnArray){
        btn.gotoAndPlay('open');
    }
    

    更好的是,如果您在该数组中拥有的按钮是 bar_mc 的唯一子项,为什么不直接使用 bar_mc 的显示列表而不是像这样的数组:

    for (var index:int = 0;index < bars_mc.numChildren;index++)
    {
       var btn:MovieClip = bars_mc.getChildAt(index) as MovieClip;
       btn.gotoAndPlay('open');
    }
    

    但是,如果你想走你目前选择的路线,你可以这样做:

    var myBtnArray = ['bmc1', 'bmc2', 'bmc3', 'bmc4', 'bmc5', 'bmc6', 'bmc7', 'bmc8', 'bmc9', 'bmc10', 'bmc11'];
    for each (var btn:String in myBtnArray) {
        MovieClip(bars_mc[btn]).gotoAndPlay('open');
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-03
      • 1970-01-01
      • 2011-07-11
      • 2017-05-19
      • 1970-01-01
      • 2014-12-22
      • 2012-05-19
      相关资源
      最近更新 更多