将不同的类对象传递给函数并获取它的属性?
例如:
我有两个不同的类对象:
screenA = new ScreenA();
screenB = new ScreenB();
我传递了补间中的对象:
switch (state)
{
case States.SCREEN_A:
{
Actuate.tween(screenA, 0.6, {alpha: 1} ).ease(Sine.easeIn).autoVisible (true).onComplete(onComp, [screenA]);
}
case States.SCREEN_B:
{
Actuate.tween(screenB, 0.6, {alpha: 1} ).ease(Sine.easeIn).autoVisible (true).onComplete(onComp, [screenB]);
}
}
现在我想在补间完成时访问传递对象的方法。
Tween正在传递对象,但我无法将其强制转换为函数以获取对象方法。
private function onComp(screen:?)
{
screen.load();
}
编译器总是要求输入类型。我已经尝试了Dynamic
/ Any
,但后来说“找不到加载方法”,如果我在函数中传递了没有任何类型参数的对象,那么它将它作为对象而不是类对象
答案 0 :(得分:2)
有很多方法可以做到这一点,但有一种方法是使用通用界面:
<script> $( document ).ready(function() { $('#CO').css({fill: '#ff0000'}); }); </script>
然后你的功能是:
class ScreenA implements OnTweenComplete { ... }
class ScreenB implements OnTweenComplete { ... }
interface OnTweenComplete {
public function on_tween_complete();
}
或者,也许,使用private function onComp(screen:OnTweenComplete)
{
screen.on_tween_complete();
}
对其进行类型检查并投射它:
Std.is
答案 1 :(得分:0)
在这个确切示例中,您可以在load
回调中使用onComplete
来简化代码:
Actuate.tween (screenA, 0.6, { alpha: 1 }).ease (Sine.easeIn).onComplete (screenA.load);