2013-04-09 59 views
0

我正在制作一个游戏,通过触摸将对象拖放到屏幕上。我正在使用SurfaceView这样做。我怎样才能同时运行多个动画?

有时我需要制作一个动画来在用户正在玩时移动一个物体。

这是我的代码:

//raise it 
m = new MyLinearMoveAnimation(container1, Config.AXIS_Y, topLine, 2*Speed); 
t = new Thread(m); 
t.start(); 
while(delivering); 
try {t.join();} catch (InterruptedException e1) {e1.printStackTrace();} 
while(t.isAlive()); 

//move to destination column 
m = new MyLinearMoveAnimation(container2, Config.AXIS_X, Config.IMAGE_X, 2*Speed); 
t = new Thread(m); 
t.start(); 
while(delivering); 
try {t.join();} catch (InterruptedException e1) {e1.printStackTrace();} 
while(t.isAlive()); 

这两个动画都执行一个接一个。我希望他们能够同时运行。我怎样才能做到这一点?

+0

http://developer.android.com/reference/java/util/concurrent/Executor.html – Raghunandan 2013-04-09 12:03:33

+0

它们是在彼此之后执行的,因为你用while(deliver)阻塞了“父”线程;和while(t.isAlive());. – damian 2013-04-09 12:04:49

+0

因此,我可以立即加入()线程吗?它会等待线程结束执行来调用join()?或者我可以删除它? – Aziz 2013-04-09 12:34:23

回答

-1

您可以到异步任务中,您可以在同一时间运行型动物任务的Android

http://developer.android.com/reference/android/os/AsyncTask.html

由于使用异步任务,如果您推出的动画在型动物异步任务他们会在同一个执行驯服

+1

为什么要他/她怎么样?包括更多细节,以便他/她能很好地理解它。 – 2013-04-09 12:04:41

+0

谢谢!如果我没有找到runnables的解决方案,我会试试这个tomorow。 – Aziz 2013-04-09 12:35:13

相关问题