• krpano之字幕添加


    krpano之字幕添加

    字幕是指介绍语音的字幕,字幕随着语音的播放而滚动,随语音暂停而暂停。字幕添加的前提是用之前的方法添加过介绍语音。

    原理:

    字幕层在溢出隐藏的父元素中向右滑动,当点击声音控制按钮时,字幕位置被固定,再次点击时继续右滑。

    效果截图:

    步骤及原理:

    1.在皮肤.xml文件中添加父元素layer

    <!--字幕功能增加-父元素-->
    <layer name="skin_subtitles" type="container" visible="true"  zorder="100"
           css="" maskchildren="true"
           style=" " align="top" edge="bottom" x="5" y="-5" rotate="0.0" width="70%" height="30px" scale="1.0"
           altscale="1.0" alpha="1.0" bgcolor="0xcccccc" bgalpha="1.0" onclick="" ondown="" onup="" onloaded="" >
    </layer>

    2.为每一个场景添加字幕。

      在每一个场景标签<scene>中添加字幕标签,模板为:

    <!--字幕-->
    <layer name="subtitles_text" url="%SWFPATH%/plugins/textfield.swf" align="right" edge="left" x="-150" y="0" parent="skin_subtitles"
           html="虚拟现实教学中心通过五大区域形成了课程讲解、沉浸式体验、一键式课程操作、角色扮演互动、课堂效果智能评估等完善的功能框架。"
           style=""
           widthss="1400"
           timess="30"
           zorder="101" enabled="false" background="false" border="false"
           visible="true" />

      其中自定义的属性及含义为:

        parent="skin_subtitles" 定义父元素,将字幕放入第一步定义好的父元素位置。

        html=“”   字幕内容,将需要显示的字幕输入,不可以换行。

        widthss=“1400”  字幕块的宽,也是字幕停止时,左端点的相对位置。需要手动输入,可通过F12查询字幕快的值。

        timess=“30” 介绍音频的长度。需手动输入,就是音频播放时间。用来控制字幕滚动时间。

    3.介绍语音控制按钮(暂停/播放按钮)的属性修改

      3.1增加属性

        tfaaa=“true” 标识字幕显示动态。

      3.2 onclick方法中调用字幕控制方法。

        原介绍语音控制按钮:

    <plugin name="snd"  style="skin_base|skin_glow" crop="0|768|64|64" align="righttop" x="15" y="17" scale="0.5" alpha="1"
            onloaded="if(ismobile,set(scale,1));"
            onclick="pausesoundtoggle(bggsnd1); switch(crop, 0|768|64|64, 64|768|64|64);"
            />

        修改后控制按钮:

    <plugin name="snd"  style="skin_base|skin_glow" crop="0|768|64|64" align="righttop" x="15" y="17" scale="0.5" alpha="1"
            onloaded="if(ismobile,set(scale,1));" tfaaa="true"
            onclick="pausesoundtoggle(bggsnd1); switch(crop, 0|768|64|64, 64|768|64|64);subtitles_controller()"
            />

        字幕控制方法代码:(字幕控制方法代码插入至全局事件下方即可)

    <!--字幕控制函数-->
        <action name="subtitles_controller">
            if(tfaaa,
            tween(layer[subtitles_text].x,get(layer[subtitles_text].x),0);set(tfaaa,false),
            mul(mh,layer[subtitles_text].timess,get(layer[subtitles_text].x));
            div(mh,get(mh),layer[subtitles_text].widthss);
            sub(mh,layer[subtitles_text].timess,get(mh));
            mod(md,get(mh),1);
            sub(mh,get(mh),get(md));
            tween(layer[subtitles_text].x,get(layer[subtitles_text].widthss),get(mh));
            set(tfaaa,true);
            );
        </action>

    4.在tour.xml中添加全局事件

    <events onremovepano="tween(layer[subtitles_text].x,-150,0.1);"
            onnewpano="tween(layer[subtitles_text].x,get(layer[subtitles_text].widthss),get(layer[subtitles_text].timess));" />

    在切换场景时,上一个场景关闭,将字幕条放在父元素右边固定位置。下一个场景打开时字幕自动向右移。其移动结束位置,和移动时间设置为之前手动输入的数值。

    但是场景中全局事件只能有一个,所以需要把这个整合到介绍语音的全局事件内。否则介绍语音不播放。

     <events onremovepano="stopsounds();tween(layer[subtitles_text].x,-150,0.1);"
             onnewpano="automusic();tween(layer[subtitles_text].x,get(layer[subtitles_text].widthss),get(layer[subtitles_text].timess));" />

    原创:转载请标明出处

  • 相关阅读:
    图解:在资深架构师眼中的架构应该是怎样的?
    面试必看|面试官之间的“潜规则”
    职业规划:专属程序员的巡礼之年
    互联网企业如何应对网站架构演化带来的“蝴蝶效应”
    阿里首席架构师,是如何选择并落地架构方案的
    你真的了解微服务架构吗?听听八年阿里架构师怎样讲述Dubbo和Spring Cloud微服务架构
    大型分布式电商系统架构演进史?
    大厂面试官:Java工程师的“十项全能”
    打包签名时出现Conversion to Dalvik format failed with error 1
    Android项目混淆打包
  • 原文地址:https://www.cnblogs.com/s313139232/p/7500502.html
Copyright © 2020-2023  润新知