Aframe通过event-component & proxy-component触发Element的动画
Aframe Trigger Animation of Element through event-component & proxy-component
我正在尝试在查看某个元素时触发其他元素上的动画。所以我想要实现的是:当我悬停球时,文字应该淡入。当我离开球时,文字应该淡出。
我被告知 aframe-proxy-event-component
应该可以做到这一点,但我找不到任何关于如何使用它的示例或文档。
代码看起来像这样:
<script src="https://unpkg.com/aframe-animation-component@5.1.2/dist/aframe-animation-component.min.js"></script>
<script src="https://unpkg.com/aframe-event-set-component@4.0.0/dist/aframe-event-set-component.min.js"></script>
<script src="https://unpkg.com/aframe-proxy-event-component/dist/aframe-proxy-event-component.min.js"></script>
<a-mixin id="scaleUpMixin" animation__scale="property: scale; dur: 500; easing: easeInOutQuad; to: 1.5 1.5 1.5;"></a-mixin>
<a-mixin id="scaleDownMixin" animation__scale2="property: scale; dur: 500; easing: easeInOutQuad; to: 1 1 1;"></a-mixin>
<a-mixin id="fadeInText" animation__opacity="property: text.opacity; dur: 500; to: 1"></a-mixin>
<a-mixin id="fadeOutText" animation__opacity2="property: text.opacity; dur: 500; to: 0"></a-mixin>
<a-entity rotation="0 -10 0">
<!-- Planet -->
<a-sphere color="yellow" position="0 1.8 -5" radius="0.5" scale="1 1 1"
mixin="scaleUpMixin scaleDownMixin"
animation__scale="startEvents: mouseenter;"
animation__scale2="startEvents: mouseleave;">
</a-sphere>
<!-- Text -->
<a-text id="TextMercury" class="textbox" text="value: Merkur; align: center; color:#FFF" opacity="0" scale="0.8 0.8 0.8"
position="0 1.8 -1"> </a-text>
</a-entity>
这是一个现场演示:https://gorgeous-badge.glitch.me/
一个代码:https://glitch.com/edit/#!/gorgeous-badge?path=index.html:30:61
谢谢!
您需要将 proxy-event
组件附加到球体。它有很好的记录(有一个例子)@github
如果你有一个按钮,你可以像这样重定向任何事件:
<a-box proxy-event="event: event; to: targetSelector; as: newname"></a-box>
<a-entity animation="(...) startEvents: newname"></a-entity>
在this fiddle中查看。
我正在尝试在查看某个元素时触发其他元素上的动画。所以我想要实现的是:当我悬停球时,文字应该淡入。当我离开球时,文字应该淡出。
我被告知 aframe-proxy-event-component
应该可以做到这一点,但我找不到任何关于如何使用它的示例或文档。
代码看起来像这样:
<script src="https://unpkg.com/aframe-animation-component@5.1.2/dist/aframe-animation-component.min.js"></script>
<script src="https://unpkg.com/aframe-event-set-component@4.0.0/dist/aframe-event-set-component.min.js"></script>
<script src="https://unpkg.com/aframe-proxy-event-component/dist/aframe-proxy-event-component.min.js"></script>
<a-mixin id="scaleUpMixin" animation__scale="property: scale; dur: 500; easing: easeInOutQuad; to: 1.5 1.5 1.5;"></a-mixin>
<a-mixin id="scaleDownMixin" animation__scale2="property: scale; dur: 500; easing: easeInOutQuad; to: 1 1 1;"></a-mixin>
<a-mixin id="fadeInText" animation__opacity="property: text.opacity; dur: 500; to: 1"></a-mixin>
<a-mixin id="fadeOutText" animation__opacity2="property: text.opacity; dur: 500; to: 0"></a-mixin>
<a-entity rotation="0 -10 0">
<!-- Planet -->
<a-sphere color="yellow" position="0 1.8 -5" radius="0.5" scale="1 1 1"
mixin="scaleUpMixin scaleDownMixin"
animation__scale="startEvents: mouseenter;"
animation__scale2="startEvents: mouseleave;">
</a-sphere>
<!-- Text -->
<a-text id="TextMercury" class="textbox" text="value: Merkur; align: center; color:#FFF" opacity="0" scale="0.8 0.8 0.8"
position="0 1.8 -1"> </a-text>
</a-entity>
这是一个现场演示:https://gorgeous-badge.glitch.me/
一个代码:https://glitch.com/edit/#!/gorgeous-badge?path=index.html:30:61
谢谢!
您需要将 proxy-event
组件附加到球体。它有很好的记录(有一个例子)@github
如果你有一个按钮,你可以像这样重定向任何事件:
<a-box proxy-event="event: event; to: targetSelector; as: newname"></a-box>
<a-entity animation="(...) startEvents: newname"></a-entity>
在this fiddle中查看。