- 好友
- 2
- 在线时间
- 27 小时
- 最后登录
- 2024-12-27
见习骑士
- UID
- 3048044
- 第纳尔
- 2095
- 精华
- 0
- 互助
- 19
- 荣誉
- 2
- 贡献
- 20
- 魅力
- 295
- 注册时间
- 2018-12-15
鲜花( 36) 鸡蛋( 0)
|
众所周知prsnt中想要实现文本换行一般需要通过两个渠道,一个是设置了scrollable的create_text_overlay,另一种情况需要在一个范围按照代码生成文本的情况下,会先text overlay设为container之后,再进行接下来的生成,但是(划重点),制造container之后,除了这个文本本体之外那些需要换行的文本,并不会直接换行,也就是说你还需要在container内部继续create有scrollable标签的create_text_overlay,但在创造这种带crollable标签的内容时,由于这个情况下,直接设置是不会在范围内自动换行的(疑似是边框不被视为边缘而不触发),因此我们实际上还需要创造一个overlay_set_area_size限制才能让这个东西在container内部完成换行。我一开始做的时候以为触及边缘是可以直接触发换行的导致大脑进行了多次0_o?之后想到用overlay_set_area_size,再然后对了一小会position之后才想起来这个areasize本质是从左下角算起的一个长方体,根据我的理解代码的运作应该达到以下效果
上一条文本
[areasize内部的文本开始(假设我们设置了50的范围,但文字只有一行)]
[areasize内部的文本结束(假设我们设置了50的范围,但文字只有一行)]
下一条文本
由于实际上这个从左下角开始计算的框架而不是左上角,因此实际上在container内部的记录应该areasize是多少就先减少多少的y轴变量而不是直接按照正常情况扣除每行之间的变量数值,不然你会得到堆重叠的文本,折腾了我整整半小时才想起来areasize是个从左下角算起的矩形。
不过说到现在我还是没搞懂为什么container设置了areasize和普通size之后文字触碰边缘不触发换行,意义不明了属于是
分享完小经验再发个便宜脚本,能有效降低各位写presentation中动脑量
- ("fix_position",
- [
-
- (store_script_param, ":pos_x", 1),
- (store_script_param, ":pos_y", 2),
- (store_script_param, ":pos_t", 3),
- (try_begin),
- (eq,":pos_t", 1),
- (position_set_x, pos1, ":pos_x"),
- (position_set_y, pos1, ":pos_y"),
- (else_try),
- (eq,":pos_t", 2),
- (position_set_x, pos2, ":pos_x"),
- (position_set_y, pos2, ":pos_y"),
- (else_try),
- (eq,":pos_t", 3),
- (position_set_x, pos3, ":pos_x"),
- (position_set_y, pos3, ":pos_y"),
- (else_try),
- (eq,":pos_t", 4),
- (position_set_x, pos4, ":pos_x"),
- (position_set_y, pos4, ":pos_y"),
- (else_try),
- (eq,":pos_t", 5),
- (position_set_x, pos5, ":pos_x"),
- (position_set_y, pos5, ":pos_y"),
- (else_try),
- (eq,":pos_t", 6),
- (position_set_x, pos6, ":pos_x"),
- (position_set_y, pos6, ":pos_y"),
- (else_try),
- (position_set_x, pos0, ":pos_x"),
- (position_set_y, pos0, ":pos_y"),
- (else_try),
- (try_end),
- ]),
复制代码
槽位觉得不够可以自行添加
|
评分
-
查看全部评分
|