gpt4 book ai didi

actionscript-3 - 在点击处理程序中访问 .name 属性

转载 作者:行者123 更新时间:2023-12-02 03:54:39 25 4
gpt4 key购买 nike


我正在尝试通过 flash + actionscript 制作一个简单的纸牌配对游戏,但在分配事件监听器和名称时遇到了很大的麻烦。我已经准备好所有卡片生成语句,它们都绘制在我的舞台上,但即使我将它们的实例名称分配给 newCard.name,跟踪点击时我得到的名称始终是每个按钮上的“root1”,我不知道为什么。

package  {
import flash.display.MovieClip;
import flash.events.MouseEvent;

public dynamic class cardGameMain extends MovieClip {

public function cardGameMain() {
addCards();
}
public function addCards() {
var lastCard:int;
for (var i = 1; i < 17; i++) {
var newCard:MovieClip;
newCard = new cardBackSymbol();
newCard.name = "card" + i;
addChild(newCard);
newCard.addEventListener(MouseEvent.MOUSE_UP, decideCard);
if (i == 1 || i == 5 || i == 9 || i == 13) {
newCard.x = 20;
if (i == 1) {
newCard.y = 20;
}
else if (i == 5) {
newCard.y = 240;
}
else if (i == 9) {
newCard.y = 460;
}
else if (i == 13) {
newCard.y = 680;
}
lastCard = 20;
} else if (i > 1 && i < 5) {
newCard.x = lastCard + 145;
newCard.y = 20;
lastCard = lastCard + 145;
} else if (i > 5 && i < 9) {
newCard.x = lastCard + 145;
newCard.y = 240;
lastCard = lastCard + 145;
} else if (i > 9 && i < 13) {
newCard.x = lastCard + 145;
newCard.y = 460;
lastCard = lastCard + 145;
} else {
newCard.x = lastCard + 145;
newCard.y = 680;
lastCard = lastCard + 145;
}
trace(newCard.name + " position is " + newCard.x + ", " + newCard.y);
}
}

public function decideCard(e:MouseEvent):void {
trace(this.name)
}
}

非常感谢任何有关此事的帮助!

最佳答案

您正在使用 this 关键字,它指的是包含类,而不是单击的对象。

试试这个:

public function decideCard(e:MouseEvent):void {
trace(DisplayObject(e.currentTarget).name)
}

关于actionscript-3 - 在点击处理程序中访问 .name 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13240143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com