12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- import { AudioMgr } from "../../../../main/ViewManage";
- import BaseEvent from "../base/BaseEvent";
- const { ccclass, property } = cc._decorator;
- @ccclass
- export default class FBothwayOpen extends BaseEvent {
- /**
- * 控制的栅栏机关
- */
- @property({
- displayName: 'left机关',
- type: cc.Node,
- })
- leftFenceTrigger: cc.Node = null;
- @property({
- displayName: 'right机关',
- type: cc.Node,
- })
- rightFenceTrigger: cc.Node = null;
- @property({
- displayName: '提示图标',
- type: cc.SpriteFrame
- })
- mTipsIcon: cc.SpriteFrame = null;
- @property({
- displayName: "动画",
- type: sp.Skeleton,
- })
- spine: sp.Skeleton = null;
- openType: string = "";
- onBegin(tag) {
- if (tag == 0) {
- this.showOpt(this.mTipsIcon, () => {
- this.spineAction(this.spine, "left", () => {
- this.openmFenceTrigger(this.leftFenceTrigger, "left");
- })
- })
- } else if (tag == 1) {
- this.showOpt(this.mTipsIcon, () => {
- this.spineAction(this.spine, "right", () => {
- this.openmFenceTrigger(this.rightFenceTrigger, "right");
- })
- })
- }
- }
- onEnd(tag: number) {
- this.closeOpt();
- }
- openmFenceTrigger(node: cc.Node, type: string) {
- this.pause();
- this.moveCamera(node.getPosition(), 1, () => {
- cc.tween(this.node).sequence(
- cc.callFunc(() => {
- if (this.openType != type) {
- this.showFence(node, "close");
- if (this.openType != "") {
- this[`${this.openType}FenceTrigger`].active = true;
- this.showFence(this[`${this.openType}FenceTrigger`], "open");
- }
- }
- this.ff.main.playerEffectByPath(AudioMgr.openDoor);
- }),
- cc.delayTime(1),
- cc.callFunc(() => {
- this.openType = type;
- node.active = false;
- this.resume();
- this.closeOpt();
- })
- ).start();
- })
- }
- private showFence(element, action) {
- let nodes = element.children;
- for (let i = 0; i < nodes.length; i++) {
- const element = nodes[i];
- let spine: sp.Skeleton = element.getComponent(sp.Skeleton);
- if (spine) {
- spine.setAnimation(0, action, false);
- }
- }
- }
- }
|