1、基本概念
- 画面层级
stoaryboard appliction screen layer、table(actions、Variables) control(actions、Variables) image、text、3DModel...(actions)
- animation
可以对所有Variables(变量)进行编辑
2、事件绑定(event)
- Press(gre.press)
- gre.screenshow.post
3、 响应(action)
- Data Change(gra.datachange)(触发文字、图片等变更)
- Screen Transition:3D Cube(gra.screen.glcube),进行screen三维立体切换
- gre.lua (调用lua函数)
4、动画(anim)
- Iterations:2 (迭代,指动画运行次数)
5、lua常用callback(可以使用F1查看help说明)
gre.animation_trigger("left_dial_rotation") --> 触发(动画)
gre.animation_destroy(progress) –> 触发(动画)
progress = gre.animation_create(60,1) –> 创建动画(帧率,迭代次数)
data[“rate”] = “linear” –> 添加动画参数 动画线型Ease In(缓进快出)、bounce(波动进行)、Ease Out(快进缓出)、Linear(线性)、窗口设定可自定义
data[“duration”] = 5000 –> 持续时间ms
data[“from”] = 0
data[“to”] = 360
data[“key”] = “LuaAnimation_layer.circleEndAngle” –> Variables(变量)
gre.animation_add_step(progress, data) –> 配置动画(id,table)
gre.timer_set_timeout(func,4000) –> 4000ms后触发函数
–> 设置control对象(”layer.control.renderExtensions(渲染对象)“,”图片路径”)
gre.set_value(“LuaAnimation_layer.Pause.image”, “images/pause.png” )
– 如何设置text?
–> 获取variables值
gre.get_value(“LuaAnimation_layer.percentage”) ~= “100%”
data[“LuaAnimation_layer.CircleProgress_Group.grd_x”] = 240
data[“LuaAnimation_layer.BarProgress_Group.grd_x”] = 240
gre.set_data(data) –> 设定渲染对象参数
gre.animation_pause(progress) –> 停止动画
gre.animation_resume(progress) –> 继续动画
data[“x”] = 520 –> 克隆control,需要先设置克隆后对象的坐标
gre.clone_control(“LuaAnimation_layer.CircleProgress_Group”, “CircleProgress_2_Group”, “LuaAnimation_layer”, data) –> 克隆对象id、克隆后id、所属layer、克隆后的属性
gre.delete_control(“LuaAnimation_layer.CircleProgress_2_Group”) –> 删除control
:hexoPostRenderEscape–>
6、crank 问题汇总
- 使用action,事件映射不成功
- 需要在控件的renderExtensions绑定创建的事件
- 使用action,事件screen:3D Cube没有效果
- 使用错误,应该由当前screen创建action,然后指定到其他的screen上
- 表盘指针旋转动画异常
- 需要设置Control显示区域,指定旋转中心为相对显示区域的局部坐标,即旋转中心为旋转中心的绝对坐标减去显示区域起始坐标
- 控件不能同时映射press和release
- 使用错误,press、release的actions应该对控件的同一个Variables进行
- lua脚本未运行起来
- 动画名称未匹配上
- obj模型加载不了
- 直接放置ssg文件到文件目录可调用,但无法关联部分贴图
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2291184112@qq.com