时间线信号播放问题,有没有大佬帮我看下代码

[复制链接]
49 |8
文仟 发表于 6 天前 | 显示全部楼层 |阅读模式

问题描述及使用流程:

由于想要实现信号播放时间线动画的功能,我用鱼片大佬提供的时间线播放预制体修改了一下当中的TextTrigger脚本。基本就是复制粘贴大法,运行后文字可以显示,但会有报错代码。时间线也没有正常播放。

小弟才疏学浅,编程不是很好,所以有没有大佬帮我看下是哪里没有写对。。。



import { TypeWriter } from "./TypeWriter";
import TextShow_Generate from "./ui-generate/TextShow_generate";

@Component
export default class TextTrigger extends Script {
    @Property({ displayName: "开始信号", group: "接收信号" })
    public startEvent: string = ""

    @Property({ displayName: "TimelineID", group: "接收信号" })
    public TimelineID: string = ""

    @Property({ displayName: "1白删除线", group: "文本文字" })
    public Text01: string = ""

    @Property({ displayName: "2青删除线", group: "文本文字" })
    public Text02: string = ""

    @Property({ displayName: "3白删除线", group: "文本文字" })
    public Text03: string = ""

    @Property({ displayName: "4白下划线", group: "文本文字" })
    public Text04: string = ""

    @Property({ displayName: "5红下划线", group: "文本文字" })
    public Text05: string = ""

    @Property({ displayName: "6白下划线", group: "文本文字" })
    public Text06: string = ""

    /** 当脚本被实例后,会在第一帧更新前调用此函数 */

    director: lighter.timeline.Director;
    protected onStart(): void {
        console.log("TextTrigger onStart");
        this.director = lighter.timeline.Director.create();
        if (this.startEvent != "") {                                //修改的部分
            Event.addLocalListener(this.startEvent, () => {         //修改的部分
                this.showText();                                    //修改的部分
            })
        }
    }
    showText() {
        const text = LanguageUtil.getText(`<s>${this.Text01}<color=#cyan>${this.Text02}</color>${this.Text03}</s><u>${this.Text04}<size=30><color=#red>${this.Text05}</color></size>${this.Text06}</u>`)    //修改的部分
        console.log("showText", text);
        const ui = UIService.show(TextShow_Generate);
        new TypeWriter(text,
            (txt => {
                ui.mTextBlock.text = txt;
            }),
            () => {
                setTimeout(() => {
                    UIService.hide(TextShow_Generate);
                    this.director.play(`${this.TimelineID}`);       //修改的部分
                }, 2000);

            }
        )
    }

    /**
     * 周期函数 每帧执行
     * 此函数执行需要将this.useUpdate赋值为true
     * @param dt 当前帧与上一帧的延迟 / 秒
     */
    protected onUpdate(dt: number): void {

    }

    /** 脚本被销毁时最后一帧执行完调用此函数 */
    protected onDestroy(): void {

    }
}

相关截图或视频:

这是报错内容

[2024.12.06-18.19.59:366][310]Log file open, 12/06/24 18:19:59
[2024.12.06-18.19.59:366][310]MWTS:: Display:  start load lighter library.....
[2024.12.06-18.19.59:366][310]MWTS:: Display:  load lighter library complete!
[2024.12.06-18.19.59:366][310]MWTS:: Display:  start load animation library.....
[2024.12.06-18.19.59:374][310]MWTS:: Display:  load animation library complete!
[2024.12.06-18.19.59:374][310]MWTS:: Display:  start load timeline library.....
[2024.12.06-18.19.59:385][311]MWTS:: Display:  load timeline library complete!
[2024.12.06-18.20.04:619][361]MWTS:: Display:  TextTrigger onStart
[2024.12.06-18.20.04:619][361]MWTS:: Display:  欢迎使用Timeline播放组件!
[2024.12.06-18.20.04:619][361]MWTS:: Display:  当前播放资源:,
[2024.12.06-18.20.04:620][361]MWTS:: Display:  使用方法:
[2024.12.06-18.20.04:620][361]MWTS:: Display:  按空格键暂停/播放
[2024.12.06-18.20.04:620][361]MWTS:: Display:  按回车键重新播放
[2024.12.06-18.20.04:620][361]MWTS:: Display:  按ESC键停止播放
[2024.12.06-18.20.04:620][361]MWTS:: Display:  tips:正式发布前记得删除场景上的#DirectorComponent对象喔
[2024.12.06-18.20.04:620][361]MWTS:: Error:  the director has no any preset clip. please set a clip first
[2024.12.06-18.20.04:904][364]MWTS:: Display:  showText,<s>123<color=#cyan>456</color>789</s><u>2424<size=30><color=#red>494</color></size>5757</u>
[2024.12.06-18.20.07:925][394]MWTS:: Error:  unhandledRejection,TypeError: Cannot read properties of undefined (reading 'getAsset'),TypeError: Cannot read properties of undefined (reading 'getAsset')
    at Director.play (E:\MetaApp\Editor_Win64\MetaWorldSaved\Saved\MetaWorld\Project\Edit\手搓核弹\手搓核弹\dist\game.js:19995:44)
    at Object.callBack (E:\MetaApp\Editor_Win64\MetaWorldSaved\Saved\MetaWorld\Project\Edit\手搓核弹\手搓核弹\dist\game.js:21287:31)
    at timerTick (E:\KouDai\Editor\online\v0.41.0.5.20241125160613\WindowsNoEditor\MW\Mobile\WindowsNoEditor\MetaWorldMobile\Content\JavaScript\MWUserBootstrap.js:31310:13)
    at E:\KouDai\Editor\online\v0.41.0.5.20241125160613\WindowsNoEditor\MW\Mobile\WindowsNoEditor\MetaWorldMobile\Content\JavaScript\puerts\lazyload.js:923:31
[2024.12.06-18.20.45:461][194]MWTS:: Display:  showText,<s>123<color=#cyan>456</color>789</s><u>2424<size=30><color=#red>494</color></size>5757</u>
[2024.12.06-18.20.48:129][221]MWTS:: Error:  unhandledRejection,TypeError: Cannot read properties of undefined (reading 'getAsset'),TypeError: Cannot read properties of undefined (reading 'getAsset')
    at Director.play (E:\MetaApp\Editor_Win64\MetaWorldSaved\Saved\MetaWorld\Project\Edit\手搓核弹\手搓核弹\dist\game.js:19995:44)
    at Object.callBack (E:\MetaApp\Editor_Win64\MetaWorldSaved\Saved\MetaWorld\Project\Edit\手搓核弹\手搓核弹\dist\game.js:21287:31)
    at timerTick (E:\KouDai\Editor\online\v0.41.0.5.20241125160613\WindowsNoEditor\MW\Mobile\WindowsNoEditor\MetaWorldMobile\Content\JavaScript\MWUserBootstrap.js:31310:13)
    at E:\KouDai\Editor\online\v0.41.0.5.20241125160613\WindowsNoEditor\MW\Mobile\WindowsNoEditor\MetaWorldMobile\Content\JavaScript\puerts\lazyload.js:923:31
[2024.12.06-18.20.54:361][283]MWTS:: Display:  showText,<s>123<color=#cyan>456</color>789</s><u>2424<size=30><color=#red>494</color></size>5757</u>
[2024.12.06-18.20.57:362][313]MWTS:: Error:  unhandledRejection,TypeError: Cannot read properties of undefined (reading 'getAsset'),TypeError: Cannot read properties of undefined (reading 'getAsset')
    at Director.play (E:\MetaApp\Editor_Win64\MetaWorldSaved\Saved\MetaWorld\Project\Edit\手搓核弹\手搓核弹\dist\game.js:19995:44)
    at Object.callBack (E:\MetaApp\Editor_Win64\MetaWorldSaved\Saved\MetaWorld\Project\Edit\手搓核弹\手搓核弹\dist\game.js:21287:31)
    at timerTick (E:\KouDai\Editor\online\v0.41.0.5.20241125160613\WindowsNoEditor\MW\Mobile\WindowsNoEditor\MetaWorldMobile\Content\JavaScript\MWUserBootstrap.js:31310:13)
    at E:\KouDai\Editor\online\v0.41.0.5.20241125160613\WindowsNoEditor\MW\Mobile\WindowsNoEditor\MetaWorldMobile\Content\JavaScript\puerts\lazyload.js:923:31
[2024.12.06-18.21.00:844][348]MWTS:: Display:  showText,<s>123<color=#cyan>456</color>789</s><u>2424<size=30><color=#red>494</color></size>5757</u>
[2024.12.06-18.21.03:983][402]Log file closed, 12/06/24 18:21:03

补充信息(版本、日志等):

鱼片大佬的预制体

回复

使用道具 举报

六安🐟片 发表于 6 天前 | 显示全部楼层
可以检查一下timeline文件的id是否传进来了。也可以提供一下工程
回复

使用道具 举报

文仟楼主 发表于 6 天前 | 显示全部楼层
六安🐟片 发表于 2024-12-6 19:00
可以检查一下timeline文件的id是否传进来了。也可以提供一下工程

工程要怎么提供?是把工程文件夹打包发出来吗?论坛这里我没有找到上传文件的地方
回复

使用道具 举报

六安🐟片 发表于 6 天前 | 显示全部楼层
文仟 发表于 2024-12-6 19:05
工程要怎么提供?是把工程文件夹打包发出来吗?论坛这里我没有找到上传文件的地方 ...

高级模式,可以添加附件
回复

使用道具 举报

文仟楼主 发表于 6 天前 | 显示全部楼层
六安🐟片 发表于 2024-12-6 19:05
高级模式,可以添加附件

哦哦,只有富文本模式才有好像。。
手搓核弹.7z (1.35 MB, 下载次数: 8)
回复

使用道具 举报

六安🐟片 发表于 6 天前 | 显示全部楼层
文仟 发表于 2024-12-6 19:09
哦哦,只有富文本模式才有好像。。

没有将Application文件拷贝到场景JavaScripts根目录下。具体可以参考下面使用手册中的“拷贝启动代码”‌​⁤⁢​‌⁢‬⁢​⁤​⁢‍​⁣‍‍⁡‌‬⁡⁡⁡‌⁣⁡
Timeline工具使用手册
回复

使用道具 举报

文仟楼主 发表于 6 天前 | 显示全部楼层
六安🐟片 发表于 2024-12-6 19:20
没有将Application文件拷贝到场景JavaScripts根目录下。具体可以参考下面使用手册中的“拷贝启动代码”‌ ...

哦,这样啊。。那个文本虽然有显示,但后台有报错,那个没问题吗?
回复

使用道具 举报

六安🐟片 发表于 6 天前 来自手机 | 显示全部楼层
文仟 发表于 2024-12-6 19:41
哦,这样啊。。那个文本虽然有显示,但后台有报错,那个没问题吗?

报错是因为没有配置timeline启动文件,不是文本显示的报错。可以参考手册文档里的流程做一下
回复

使用道具 举报

文仟楼主 发表于 6 天前 | 显示全部楼层
六安🐟片 发表于 2024-12-6 20:06
报错是因为没有配置timeline启动文件,不是文本显示的报错。可以参考手册文档里的流程做一下 ...

哦哦,好的,辛苦啦,感谢大佬~~
回复

使用道具 举报

热门版块
快速回复 返回顶部 返回列表