我在ActionScript 3上相当新,但我正在努力学习并尝试通过阅读和修改ActionScript源代码来学习。
到目前为止一直很好,但我偶然发现了一个我自己无法解决的问题。这对你们来说应该是非常简单的。
情况:
我有一个可点击的“对象”并提供一个随机值,该值也保存在变量中。 我得到了另一个“对象”,它做了同样的事情但只有一个不同的名字。 我希望第一个对象的变量传递给第二个,我该怎么做?
答案 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
现在我如何从旋转骰子框架中获取随机面值以将其传递给其他骰子?