我在将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中的相同功能? 还有一件事。我不需要在C#中进行任何动画移动,Flash有。
答案 0 :(得分:1)
它不一样,因为在Flash中你发送事件,所以completeMove
将在 doMove
结束后完成。在C#中你打电话给completeMove()
,所以它将在里面'doMove'完成。原因是你在C#中的代码是线程阻塞,在actionscript中是异步的。