做个测试,对一个对象同时做2个MoveTo操作,都在完成缓动后回调打印信息。结果是只会打印onComplete222()里的信息。
在iTween里传递的oncomplete的参数是字符串形式,回调时会从oncompletetarget指定的对象里找oncomplete指定的函数。iTween不是保存的引用关系,不管多少个缓动一起播放最终只能回调其中一个。
对于oncompletetarget参数,这个参数很重要。如果不指定该参数,回调时回去缓动对象obj里去找oncomplete指定的函数,如果像上面那样回调方法在obj外,则需要指定有这个oncomplete函数的对象,看看文档里的解释:
A <see cref="GameObject"/> for a reference to the GameObject that holds the "oncomplete" method.
这是两个坑爹的地方,不小心很容易掉进去。
加上之前遇到的如果对象隐藏,回调也不会执行到,目前2.0版本的iTween只是完成了基本的功能,但并不够强大,而对于这些问题也没有明确的解释,不如greensock做的好。
void testTween()
{
GameObject obj = new GameObject();
iTween.MoveTo(obj, iTween.Hash("x", 10, "oncomplete","onComplete111","oncompletetarget",gameObject));
iTween.MoveTo(obj, iTween.Hash("y", 20, "oncomplete","onComplete222","oncompletetarget",gameObject));
}
void onComplete111()
{
Debug.Log("onComplete111");
}
void onComplete222()
{
Debug.Log("onComplete222");
}
在iTween里传递的oncomplete的参数是字符串形式,回调时会从oncompletetarget指定的对象里找oncomplete指定的函数。iTween不是保存的引用关系,不管多少个缓动一起播放最终只能回调其中一个。
对于oncompletetarget参数,这个参数很重要。如果不指定该参数,回调时回去缓动对象obj里去找oncomplete指定的函数,如果像上面那样回调方法在obj外,则需要指定有这个oncomplete函数的对象,看看文档里的解释:
A <see cref="GameObject"/> for a reference to the GameObject that holds the "oncomplete" method.
这是两个坑爹的地方,不小心很容易掉进去。
加上之前遇到的如果对象隐藏,回调也不会执行到,目前2.0版本的iTween只是完成了基本的功能,但并不够强大,而对于这些问题也没有明确的解释,不如greensock做的好。