AS3 - 将mcs设置为当前标签

时间:2015-11-25 16:38:05

标签: actionscript-3

我有3个娃娃:坐着,跳着,跑步。 &安培;我有连衣裙。我所有的连衣裙都设计有3个位置:坐姿,跳跃和放大运行

  • dolls_btns 包含3个btns来选择玩偶,以内衣开头,他们的名字是:sitting_with_undies,jumping_with_undies,running_with_undies。
    (穿着衣服时会拆下衣服)。

  • dolls_mc 包含:
    在第1帧:没有什么 在第2帧:sitting_with_undies,// label:sitting_with_undies
    在第3帧:sitting_naked,// label:sitting_naked
    在第4帧:jumping_with_undies,// label:jumping_with_undies
    在第5帧:jumping_naked,// label:jumping_naked
    在第6帧:running_with_undies,// label:running_with_undies
    在第7帧:running_naked // label:running_naked

    • dresses_btns 包含允许选择礼服颜色的按钮

    • dresses_for_sitting 包含:
      在第1帧:空框架,
      在第2帧:1粉红色连衣裙//标签:pink_dress
      在第3帧:1红色连衣裙//标签:red_dress
      在第4帧:1绿色连衣裙//标签:green_dress
      和更多的衣服

    • dresses_for_jumping 包含:
      在第1帧:空框架,
      在第2帧:1粉红色连衣裙//标签:pink_dress
      在第3帧:1红色连衣裙//标签:red_dress
      在第4帧:1绿色连衣裙//标签:green_dress
      和更多的衣服

    • dresses_for_running 包含:
      在第1帧:空框架,
      在第2帧:1粉红色连衣裙//标签:pink_dress
      在第3帧:1红色连衣裙//标签:red_dress
      在第4帧:1绿色连衣裙//标签:green_dress
      和更多的衣服

让我们说我选择了坐着的娃娃&然后给她涂上粉红色的连衣裙。
接下来,如果我点击 dresses_btns.green_dress ,因为娃娃已经准备好坐着,绿色的坐式礼服会出现。 我可以通过点击我的dresses_btns来应用任何其他着装颜色,因为位置已经设​​定。 //好的

但现在,如果我点击跑步,坐姿形状的连衣裙不会消失,因为点击玩偶只能在玩偶位置之间切换,但不会使用正确的形状连衣裙。

所以我所期待的是:
1)我选择坐姿和坐姿。 2)穿上粉红色的连衣裙。 //好的,完成了 3)然后,当点击跳跃>我想要脱掉这件粉红色连衣裙,&穿上粉红色连衣裙取而代之。

因为我有很多礼服,很多职位,很多发型,&衣服,&根据最后点击的位置,我需要一种简单的方法来管理我的所有物品。

// here we are in dolls_btns

var myDolls = [sitting_with_undies, jumping_with_undies, running_with_undies];

for each ( var doll in myDolls)
{
    doll.addEventListener(MouseEvent.CLICK, onPositionClick);
    doll.buttonMode=true;
 }

function onPositionClick(e:MouseEvent):void
{ 
   MovieClip(parent).dolls_mc.gotoAndStop(e.target.name); // places the chosen doll's position on stage

if ( e.target == myDolls[2]  )  /// lets say I've clicked on running
     { 
         // what I'm trying to achieve : 
    if (  MovieClip(parent).dresses_for_sitting.currentLabel=="pink_dress")
       {  MovieClip(parent).dresses_for_sitting.gotoAndStop(1) // empty frame
          MovieClip(parent).dresses_for_running.gotoAndStop("pink_dress");    
          // That works, but I'd like to use dresses_for_sitting.currentLabel instead of naming each label one by one, as I have too many cases, clothes, hair colors, & hair styles, accessories, etc
       }
   } 
}

我一直在网上搜索超过12小时&尝试了许多解决方案,徒劳无功。 我认为currentLabel可以做到这一点,但我缺乏完成我的功能的知识。

预期感谢

1 个答案:

答案 0 :(得分:0)

 if (  MovieClip(parent).dresses_for_sitting.currentLabel=="pink_dress")
       {  
          MovieClip(parent).dresses_for_running.gotoAndStop(dresses_for_sitting.currentLabel);  
          MovieClip(parent).dresses_for_sitting.gotoAndStop(1) // empty frame  
          // That works, but I'd like to use dresses_for_sitting.currentLabel instead of naming each label one by one, as I have too many cases, clothes, hair colors, & hair styles, accessories, etc
       }

dresses_for_running 设置为 dresses_for_sitting 当前帧,然后再设置 如上所示, dresses_for_sitting 到第一帧。

现在您在将 dressing_for_running 分配给 dresses_for_sitting 框架之前重置它,因此它也会重置