2

我在将 Flash 游戏转换为 C# 时遇到问题。在 Flash 中,我会使用以下语法:

public function doMove()
{
    eaze(this).to(actionTime, {x:destX, y:destY}).onComplete(completeMove);
}
public function completeMove()
{
    dispatchEvent(new Event("checkMatch"));
    //this will run doCheckMatch on other class
}

但后来我认为它应该只是运行

public void doMove()
{
    completeMove();
}
private void completeMove()
{
    container.doCheckMatch(this);
    //this will run doCheckMatch on other class
}

我的问题是,这是否相同?如果不是,我应该在 C# 中做什么才能类似于 Flash 中的相同功能?不过还有一件事。我不需要 Flash 所具有的 C# 中的任何动画移动。

4

1 回答 1

1

不一样,因为在flash中你dispatch事件,所以completeMove会在完成 doMove完成。在 C# 中,您调用completeMove(),因此它将“doMove”中完成。原因是您在 C# 中的代码是线程阻塞的,而在 actionscript 中是异步的。

于 2013-04-11T05:30:10.323 回答