有人可以帮助我理解 CODENAME ONE 中的动画吗?
Can someone assist me in understanding Animations in CODENAME ONE?
我很困惑如何在 CN1 中使用各种动画 类 来实现所需的视觉效果。具体 类 例如“ComponentAnimation”、“AnimationObject”和“Motion”。
我还没有以任何方式成功地利用这些 类。
'''
Form f = new Form(BoxLayout.y());
f.getStyle().setBgColor(0x004040);
Label l1 = new Label("Label");
Container labelContainer = new Container(BoxLayout.y());
labelContainer.add(l1);
ComponentAnimation ca1 = labelContainer.createAnimateHierarchyFade(2000, 0);
labelContainer.getAnimationManager().addAnimation(ca1); //This is line 20.
'''
'''
java.lang.NullPointerException
at com.avf.ags.GrowSystem.runApp(GrowSystem.java:20)
at com.codename1.system.Lifecycle.start(Lifecycle.java:130)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at com.codename1.impl.javase.Executor.run(Executor.java:341)
at com.codename1.ui.Display.executeSerialCall(Display.java:1395)
at com.codename1.ui.Display.processSerialCalls(Display.java:1379)
at com.codename1.ui.Display.mainEDTLoop(Display.java:1166)
at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)
'''
我从那里得到了概念。但我不确定它是如何工作的。
这些是布局动画,只有在显示表单时才会起作用。此时表单未显示,因此它们将失败。
我建议先显示表格。在表单上使用显示侦听器来检测它何时真正完成显示。然后将组件和动画添加到已经显示的表单中。这将与您希望在任何过渡动画之后出现的效果更加一致。对吗?
我很困惑如何在 CN1 中使用各种动画 类 来实现所需的视觉效果。具体 类 例如“ComponentAnimation”、“AnimationObject”和“Motion”。 我还没有以任何方式成功地利用这些 类。
'''
Form f = new Form(BoxLayout.y());
f.getStyle().setBgColor(0x004040);
Label l1 = new Label("Label");
Container labelContainer = new Container(BoxLayout.y());
labelContainer.add(l1);
ComponentAnimation ca1 = labelContainer.createAnimateHierarchyFade(2000, 0);
labelContainer.getAnimationManager().addAnimation(ca1); //This is line 20.
'''
'''
java.lang.NullPointerException
at com.avf.ags.GrowSystem.runApp(GrowSystem.java:20)
at com.codename1.system.Lifecycle.start(Lifecycle.java:130)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at com.codename1.impl.javase.Executor.run(Executor.java:341)
at com.codename1.ui.Display.executeSerialCall(Display.java:1395)
at com.codename1.ui.Display.processSerialCalls(Display.java:1379)
at com.codename1.ui.Display.mainEDTLoop(Display.java:1166)
at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)
'''
我从
这些是布局动画,只有在显示表单时才会起作用。此时表单未显示,因此它们将失败。
我建议先显示表格。在表单上使用显示侦听器来检测它何时真正完成显示。然后将组件和动画添加到已经显示的表单中。这将与您希望在任何过渡动画之后出现的效果更加一致。对吗?