0

我有一个带有各种按钮的表单供用户选择。我已经为主时间轴上的每个按钮设置了变量,这些变量旨在根据是​​否选择按钮来保存值“是”或“否”。他们都以“不”开始。

这是每个按钮的数组:

tabs_array = ["familiars","tallers2","gestions","sortides","tallers1","medic","podoleg","dutxes","menjador"];

以下是按钮是否被选中的初始变量:

var send_dutxes:String="no";
var send_gestions:String="no";
var send_medic:String="no";
var send_menjador:String="no";
var send_podoleg:String="no";
var send_sortides:String="no";
var send_tallers1:String="no";
var send_tallers2:String="no";
var send_familiars:String="no";

以下是每个按钮的代码:

for(var a=0; a<tabs_array.length; a++){
this.popup_contact[tabs_array[a]].gotoAndStop("off");
this.popup_contact[tabs_array[a]].addEventListener(MouseEvent.MOUSE_OVER, act_over);
this.popup_contact[tabs_array[a]].addEventListener(MouseEvent.MOUSE_OUT, act_out);
this.popup_contact[tabs_array[a]].addEventListener(MouseEvent.CLICK, toggleAct);
this.popup_contact[tabs_array[a]].buttonMode = true;
}

这是我遇到问题的代码(点击状态)......当用户点击其中一个选项时:

    function toggleAct(event:MouseEvent):void
{
    if (this("send_"+event.currentTarget.name)=="no")
    {
        event.currentTarget.gotoAndStop("on");
        trace("changing no to yes");
        this("send_"+event.currentTarget.name) = "yes";
    }
    else if (this("send_"+event.currentTarget.name)=="yes")
    {
        event.currentTarget.gotoAndStop("off");
        this("send_"+event.currentTarget.name) = "no";
        trace("changing yes to no");
    }
}

基本上我需要知道如何将点击的 mc 名称连接到相应的变量....将字符串更改为变量名称。

4

1 回答 1

0

我认为它会是这样的:

var valueOfWhatYouAreLookingFor = _root['send_'+event.currentTarget.name];

假设这些变量是全局定义的

PS。即使这会起作用(我无法访问 Flash 来检查这一点)你的结构有这么多的流程......从一个简单的改变开始你不需要全局变量:

tabs_array = ["familiars","tallers2","gestions"];
for(var a=0; a<tabs_array.length; a++){
    this.popup_contact[tabs_array[a]].gotoAndStop("off");
    this.popup_contact[tabs_array[a]].addEventListener(MouseEvent.MOUSE_OVER, act_over);
    this.popup_contact[tabs_array[a]].addEventListener(MouseEvent.MOUSE_OUT, act_out);
    this.popup_contact[tabs_array[a]].addEventListener(MouseEvent.CLICK, toggleAct);
    this.popup_contact[tabs_array[a]].buttonMode = true;
    // small addition
    this.popup_contact[tabs_array[a]].currentState = 'on';
}

function toggleAct(event:MouseEvent):void
{
    // ...
    this.currentState = ( this.currentState == 'on' ? 'off' : 'on' );
    // ...
}
于 2013-06-03T18:27:47.537 回答