iTween的回调 对oncompletetarget的理解

来源:互联网 发布:进度表制作软件 编辑:程序博客网 时间:2024/05/22 17:12
做个测试,对一个对象同时做2个MoveTo操作,都在完成缓动后回调打印信息。结果是只会打印onComplete222()里的信息。


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做的好。
0 0
原创粉丝点击