.. _编译报错:图片(字库、动画、音频等)编号引用错误: 编译报错:图片(字库、动画、音频等)编号引用错误 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 控件调用的图片ID(字库、动画、音频等),在资源中不存在就会报这个错误。 解决: 1. 添加图片(字库、动画、音频等) 2. 将控件引用图片(字库、动画、音频等)的ID设为65535(即无图片的意思),操作如下图 .. image:: image/双击报错信息.png :align: center :alt: 双击报错信息 | .. image:: image/图片改为65535.png :align: center :alt: 图片改为65535 | .. _编译报错:输文件内存占用过大,请删除部分资源后重试: 编译报错:输文件内存占用过大,请删除部分资源后重试 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 添加的资源(图片、字库、动画、音频、视频)大于型号的可使用内存(14.9M),就会报错。 解决办法:删除资源。对于字库可以采用自定义字符集方式生成,动画减少帧率,音频、视频可以采用外部TF播放方式。 | .. _如何取消控件添加状态: 如何取消控件添加状态 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 两种方法: 1. 按键盘的Esc键 2. 点击属性右键 | .. _字库工具字符集和工程编码的区别: 字库工具字符集和工程编码的区别 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 大致概念: - 字符集:一种编码的所有字符的集合. - 字符编码:计算机显示字符时,按多少个字节及编码规则来解析显示。 字库工具的字符集:可以理解为选定一个编码的所有字符。 工程编码:上位机根据工程编码筛选与字库工具选定字符重合的部分。 举例1: 字库工具字符集选了GBK,工程编码选GB2312,那么下载到硬件屏的字库只有GB2312的字符。 举例2: 大家都只知道,UTF8编码可以显示全球任何语言的字符。如果字库工具字符集选了GB2312, 工程编码选UTF8,那么控件只能显示简体中文(在GB2312字符集内),而不能显示繁体中文(在GBK字符集内)。 | .. _字库工具的抗锯齿要不要选: 字库工具的抗锯齿要不要选 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 抗锯齿占用空间比非抗锯齿多近4倍,是否需要抗锯齿,建议根据编译后剩余空间来决定,如果空间足够,可以选择抗锯齿。 建议多采用自定义(字库工具字符集选项)方式创建字库,需要显示什么字符就输入什么字符,这样很大程度减少字库占用空间。 | .. _输出窗口的内存14.9M是什么意思: 输出窗口的内存14.9M是什么意思 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. image:: image/拷贝完成窗口.png :align: center :alt: 拷贝完成窗口 | 内存14.9M:硬件屏核心板SPI FLASH为16MB,其中1.1MB被系统代码占用了,可以存放工程配置文件大小为14.9MB。 数据总大小:即拷贝到核心板SPI FLASH的总大小。当数据总大小大于14.9MB时,会提示错误: | .. _U盘如何格式化为FAT32文件系统: U盘如何格式化为FAT32文件系统 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 第一步,U盘或读卡器(插上TF卡)连接到电脑的USB后,在此电脑->设备和驱动器可以看到U盘(不同电脑显示不一样),如下图: .. image:: image/发现U盘.png :align: center :alt: 发现U盘 | 第二步,选中右键,弹出窗口,选择格式。如下图: .. image:: image/右键格式化.png :align: center :alt: 右键格式化 | .. warning:: 格式化之前,一定将U盘里数据拷贝到电脑备份好! 第三步,格式化配置为如下图: .. image:: image/格式化配置.png :align: center :alt: 格式化配置 | 第四步,点击开始,等待格式化完毕。 | .. _音频控件和play指令区别: 音频控件和play()指令的区别 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - 音频控件是控件,页面加载时运行,页面离开释放,只能在当前页面播放。 + play()指令在当前页面播放后,页面离开并不会停止(适合全局背景音乐) - 音频控件可以获取音频的总时长和当前播放时间,play()指令无。 + 音频控件可以编写播放结束事件脚本。 | .. _脚本修改了文本值,为什么没显示?: 脚本或键盘修改了文本值,没显示? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - 确保使用的字库包含有你要显示的字符 + 确保控件的size属性是否足够大,否则,可能显示不全 | .. _字库全缓存什么情况需要勾选?: 字库全缓存什么情况需要勾选? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - 全缓存原理:设为全缓存,字库数据加载到RAM(运行内存)里,极大加快字符显示速度。 + 推荐设置的控件:滚动文本控件、滑动选择控件。(这两个控件需要显示字符速度快,否则容易出现卡顿现象) - 全缓存的字库:字库工具生成时建议使用自定义字符集,以减小空间从而减小RAM消耗。消耗RAM太大可能导致屏幕运行不正常。 字库工具使用自定义字符集操作如下图所示: .. image:: image/字库工具自定义字符示意图.png :align: center :alt: 字库工具自定义字符示意图 | 字库设为全缓存操作如下图所示: .. image:: image/字库设为全缓存.png :align: center :alt: 字库设为全缓存 | | .. _控件什么时候设为全局: 控件什么时候设为全局 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 当你想页面离开后,控件还保持修改后的状态,则设为全局。 如:滑块滑动后,页面离开了再次加载时,滑块位置又恢复原样了。 设为全局后,则可以保持。另外,设为全局后,在其他页面也可以对其赋值。 想要保持修改后的状态,还有一种办法,那就是使用伪全局 **伪全局:** 在页面初始化前事件中,对控件赋初始化值。如:滑块控件表示系统音量,初始化事件中编写 "sl0.val=sys.vol", 这样每次加载页面滑块都是上次修改的位置。 | .. _如何自定义键盘: 如何自定义键盘 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 第一步:创建系统键盘页面。你想自定义数值键盘就创建数值键盘页面、想要英文键盘就创建英文键盘页面,拼音键盘也一样。 如何创建请参考::doc:`../2.base/keyboard_use` 第二步:复制刚创建的键盘页面。(工程配置修改旋转角度会重置系统键盘页面,所以这里复制新页面再修改) .. image:: image/复制键盘页面.png :align: center :alt: 复制键盘页面 | 第三步:加载自己P好的键盘图片(P图时,按钮大小、个数、布局都不需要按照系统原图的)。 .. image:: image/自定义键盘添加图片.png :align: center :alt: 自定义键盘添加图片 | 第四步:键盘页面图片id修改为刚加载的图片 .. image:: image/自定义键盘修改页面属性.png :align: center :alt: 自定义键盘修改页面属性 | 第五步:给P好的图匹配键盘按钮控件,调整大小,设置键值 .. image:: image/匹配按键.png :align: center :alt: 匹配按键 | 第六步:文本控件的输入键盘属性绑定我们制作的自定义键盘页面即可。 | .. _图层窗口的作用: 图层窗口的作用 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. image:: image/图层窗口.png :align: center :alt: 图层窗口 | + 作用1:上移或下移调整控件图层。 .. image:: image/图层下移.png :align: center :alt: 图层下移 | - 作用2:当多个控件重叠时,在编辑界面选不到底层的控件,则可以在图层窗口这里选择。 .. image:: image/图层选中.png :align: center :alt: 图层选中 | .. _如何显示多国语言: 如何显示多国语言 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 首先,工程配置的字符编码需设置为UTF8。 其次,在任意页面增加一个变量控件,设为全局,名字改为lang_select(该变量用于切换语言)。 然后在页面初始化前事件写语言赋值脚本,参考如下: .. code-block:: c :linenos: if(lang_select.val==0) { t0.txt.str = "English"; } else if(lang_select.val==1) { t0.txt.str = "简体中文"; } else if(lang_select.val==2) { t0.txt.str = "こんにちは"; } else if(lang_select.val==3) { t0.txt.str = "안녕하세요"; } **注意:** - 制作字库时,字符集采用自定义方式,然后输入需要显示的字符。 - 文本控件的size大小足够,否则显示不全。 | .. _转义字符: 脚本字符串的转义字符 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 转义字符是字符串中使用两个字符表征一个特殊的字符。 目前脚本支持的转义字符:\\r(回车) \\n(换行) \\"(分号) \\\\(斜杠) 举例1: prints("123\\r\\n"); 结果:打印123后会回车换行 (注意:prints指令后面还会自带分号) .. image:: image/打印回车换行.png :align: center :alt: 打印回车换行 | 举例2: t0.txt.str = "123\\n456"; 结果:文本会换行(注意:不需要\\r) .. image:: image/字符串换行.png :align: center :alt: 字符串换行 | 举例3: t0.txt.str = "\\"123\\"!=\\"456\\""; 结果:会把\\"当一个引号 .. image:: image/转义字符双引号举例.png :align: center :alt: 转义字符双引号举例 | 举例4: t0.txt.str = "123\\\\\\456"; 结果:会把连续的\\\\两个斜杠当作一个斜杠 .. image:: image/转义字符斜杠举例.png :align: center :alt: 转义字符斜杠举例 | .. _弹窗关闭后修改的内容没保存: 弹窗关闭后修改的内容没保存 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 子页面也是页面,弹窗后,相当于切换到了新页面,旧页面的内存会被释放掉。 问题举例:旧页面有个状态开关控件,是打开状态。弹窗关闭,回到旧页面时,状态开关恢复原样了。 解决办法:如果想保持打开状态,可以将该控件设为全局。 | | | | | |