小编Fai*_*ash的帖子

AS3:如何通过"对象"

我实际上是在寻找一种方法来通过AS3中的参考传递,但后来似乎adobe和许多人对通过引用传递的理解与我在大学里所教授的不同.我被教过java传递的值和C++允许通过引用传递.

我并不想争论通过价值和参考传递的是什么.我只想解释为什么我在问题中使用pass by object ...

回到问题,我想做的事情如下:

public function swapCard(cardA:Cards, cardB:Cards) {
    var temp:Cards = cardA;
    cardA = cardB;
    cardB = temp;
}

...

swapCard(c1, c2);
Run Code Online (Sandbox Code Playgroud)

编辑:添加两个关于我如何使用swapCard函数的例子

1)在播放器1和播放器2之间交换卡片的过程中

swapCard(player1.hand[s], player2.hand[t]);
Run Code Online (Sandbox Code Playgroud)

2)在玩家1的牌和牌组之间交换牌的过程中

swapCard(player1.hand[s], player1.deck[rand]);
Run Code Online (Sandbox Code Playgroud)

在C++中,我们只需要在参数之前添加一个符号以使其工作(我们称之为通过引用传递).但在AS3中,cardA和cardB只是指向形式参数的指针.在函数中,更改指针对形式参数没有任何作用:(

我一直在寻找几个小时,但在没有知道卡的所有属性的情况下我找不到办法.

如果我必须逐个更改卡的属性,那么我应该将swapCard更改为类卡中的静态功能?(因为我不想把所有东西暴露给另一个班级)我不确定这是不是一个好习惯.这就像在类Cars中添加swap_cars函数一样.如果我让这件事发生,接下来会发生什么?洗车,借车,租车...我真的想保持卡类清洁,只保留卡的详细信息.有可能在AS3中正确完成此操作吗?

flash actionscript-3

3
推荐指数
1
解决办法
116
查看次数

标签 统计

actionscript-3 ×1

flash ×1