Actionscript 3 - 在同一个项目中将一个变量从一个对象传递到另一个对象

时间:2015-01-17 16:08:55

标签: actionscript-3 flash variables

我在ActionScript 3上相当新,但我正在努力学习并尝试通过阅读和修改ActionScript源代码来学习。

到目前为止一直很好,但我偶然发现了一个我自己无法解决的问题。这对你们来说应该是非常简单的。

情况:

我有一个可点击的“对象”并提供一个随机值,该值也保存在变量中。 我得到了另一个“对象”,它做了同样的事情但只有一个不同的名字。 我希望第一个对象的变量传递给第二个,我该怎么做?

2 个答案:

答案 0 :(得分:0)

传递值的一种方法依赖于使用对象的引用......

// mc1 and mc2 exist as movieclips on the stage

mc1.addEventListener( MouseEvent.CLICK, onClick );
mc2.addEventListener( MouseEvent.CLICK, onClick );

function onClick( event:MouseEvent ):void
{
    // reference clicked movieclip through click target
    var mc:MovieClip = event.target as MovieClip;

    // if our clip matches one, assign the other clip the value.
    if ( mc === mc1 )
    {
        mc2.value = mc.value;
    }
    else if ( mc === mc2 )
    {
        mc1.value = mc.value;
    }
}

有一千种传递参考的方法,这只是一种。

答案 1 :(得分:0)

好的家伙让我告诉你代码的重要部分(因为我付了代价而无法显示它,我不知道作者是否可以发布所有内容)。

我在那里得到了这两个对象。当我点击其中一个对象(这是一个DICE)时,它基本上给了我这个代码

var faceValue:int = 6;

// Add mouse click functionality to roll the die
addEventListener(MouseEvent.CLICK, onClickDie, false, 0, true);
mouseChildren = false;
buttonMode = true;

function onClickDie(e:MouseEvent):void {
    removeEventListener(MouseEvent.CLICK, onClickDie);
    buttonMode = false;

    // Initiate the roll-out sequence
    if(faceValue == 6) {
        gotoAndPlay("rollout6");
         etc...

然后在框架中某处旋转骰子,它随机化一个数字并将其保存到面值中

// Calculate a random face value between 1 and 6
faceValue = 1 + Math.floor(Math.random()*6);

// Initiate the roll-in sequence
if(faceValue == 6) {
    gotoAndPlay("rollin6");
    ...etc

现在我如何从旋转骰子框架中获取随机面值以将其传递给其他骰子?