\f drawImage in TextBox
This commit is contained in:
parent
717efe7882
commit
b970002b4f
@ -422,7 +422,7 @@ document.getElementById('blocklyDiv').onmousewheel = function(e){
|
||||
var type = args.type;
|
||||
if (!type) return false;
|
||||
editor_blockly.id = id_;
|
||||
codeAreaHL.setValue(input.value.replace(/\\r/g,'\\\\r'));
|
||||
codeAreaHL.setValue(input.value.replace(/\\r/g,'\\\\r').replace(/\\f/,'\\\\f'));
|
||||
document.getElementById('entryType').value = type;
|
||||
editor_blockly.parse();
|
||||
editor_blockly.show();
|
||||
|
||||
@ -313,6 +313,7 @@ floorId指定的是目标楼层的唯一标识符(ID)。
|
||||
- 使用`\b[...]`来制作对话框效果,如`\b[up,3,2]`。
|
||||
- 使用`\r[...]`来动态修改局部文本的颜色,如`\r[red]`。
|
||||
- 使用`${}`来计算一个表达式的值,如`${status:atk+status:def}`。
|
||||
- 使用`\f[...]`来同时插入一张立绘图,如`\f[1.png,100,200]`。
|
||||
|
||||
从V2.5.2开始,也允许绘制一张头像图在对话框中,只要通过`\t[1.png]`或`\t[标题,1.png]`的写法。
|
||||
|
||||
|
||||
@ -253,6 +253,20 @@
|
||||
]
|
||||
```
|
||||
|
||||
从V2.5.3以后,也可以使用`\f[...]`来同时绘制一张图片。
|
||||
|
||||
其基本写法是`\f[图片名,起始x像素,起始y像素]`,或者`\f[图片名,起始x像素,起始y像素,绘制宽度,绘制高度]`。
|
||||
|
||||
需要注意的是,这个图片是绘制在UI层上的,下一个事件执行时即会擦除;同时如果使用了\t的图标动画效果,重叠的地方也会被图标动画给覆盖掉。
|
||||
|
||||
``` js
|
||||
"x,y": [ // 实际执行的事件列表
|
||||
"\t[勇士]\b[up,hero]\f[1.png,100,100]以(100,100)为左上角绘制1.png图片",
|
||||
"\t[hero]\f[1.png,100,100]\f[2.png,300,300]同时绘制了两张图片",
|
||||
"\f[1.png,100,100,300,300]也可以填写宽高,这样会把图片强制进行放缩到指定的宽高值"
|
||||
]
|
||||
```
|
||||
|
||||
另外值得一提的是,我们是可以在文字中计算一个表达式的值的。只需要将表达式用 `${ }`整个括起来就可以。
|
||||
|
||||
``` js
|
||||
|
||||
14
libs/ui.js
14
libs/ui.js
@ -500,6 +500,20 @@ ui.prototype.drawTextBox = function(content, showAll) {
|
||||
core.status.boxAnimateObjs = [];
|
||||
core.clearMap('ui');
|
||||
|
||||
// drawImage
|
||||
content = content.replace(/(\f|\\f)\[(.*?)]/g, function (text, sympol, str) {
|
||||
var ss = str.split(",");
|
||||
if (ss.length!=3 && ss.length!=5) return "";
|
||||
var img = core.material.images.images[ss[0]];
|
||||
if (!core.isset(img)) return "";
|
||||
// 绘制
|
||||
if (ss.length==3)
|
||||
core.canvas.ui.drawImage(img, parseFloat(ss[1]), parseFloat(ss[2]));
|
||||
else
|
||||
core.canvas.ui.drawImage(img, 0, 0, img.width, img.height, parseFloat(ss[1]), parseFloat(ss[2]), parseFloat(ss[3]), parseFloat(ss[4]));
|
||||
return "";
|
||||
});
|
||||
|
||||
var globalFont = core.status.globalAttribute.font;
|
||||
var font = textfont + 'px '+globalFont;
|
||||
if (textAttribute.bold) font = "bold "+font;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user