From 5b34fbe47ef18adc25ea3e339bd3778716d595c7 Mon Sep 17 00:00:00 2001 From: oc Date: Tue, 4 Dec 2018 03:02:02 +0800 Subject: [PATCH] setOpacity -> setAlpha --- libs/actions.js | 2 -- libs/events.js | 33 ++++++++++++++++++--------------- libs/maps.js | 5 +++-- libs/ui.js | 41 ++++++++++++++--------------------------- 4 files changed, 35 insertions(+), 46 deletions(-) diff --git a/libs/actions.js b/libs/actions.js index d4d21634..5b8a3ede 100644 --- a/libs/actions.js +++ b/libs/actions.js @@ -1002,7 +1002,6 @@ actions.prototype.clickViewMaps = function (x,y) { } else if (x>=2 && x<=10 && y>=5 && y<=7) { core.clearMap('data'); - core.setOpacity('data', 1); core.ui.closePanel(); } } @@ -1031,7 +1030,6 @@ actions.prototype.keyUpViewMaps = function (keycode) { if (keycode==27 || keycode==13 || keycode==32 || (!core.status.replay.replaying && keycode==67)) { core.clearMap('data'); - core.setOpacity('data', 1); core.ui.closePanel(); return; } diff --git a/libs/events.js b/libs/events.js index 70c9a013..a1a3184a 100644 --- a/libs/events.js +++ b/libs/events.js @@ -1531,33 +1531,37 @@ events.prototype.animateImage = function (type, image, loc, time, keep, callback } clearInterval(core.interval.tipAnimate); - core.setAlpha('data', 1); - var opacityVal = 0; - if (type == 'hide') opacityVal = 1; + var alpha = 0; + if (type == 'hide') alpha = 1; + + var x = core.calValue(loc[0]), y = core.calValue(loc[1]); if (type == 'hide' && keep) { - core.clearMap('image'); + core.clearMap('image', x, y, image.width, image.height); } - - core.setOpacity('data', opacityVal); - var x = core.calValue(loc[0]), y = core.calValue(loc[1]); + core.setAlpha('data', alpha); core.canvas.data.drawImage(image, x, y); + core.setAlpha('data', 1); + // core.status.replay.animate=true; var animate = setInterval(function () { - if (type=='show') opacityVal += 0.1; - else opacityVal -= 0.1; - core.setOpacity('data', opacityVal); - if (opacityVal >=1 || opacityVal<=0) { + if (type=='show') alpha += 0.1; + else alpha -= 0.1; + core.clearMap('data', x, y, image.width, image.height); + if (alpha >=1 || alpha<=0) { delete core.animateFrame.asyncId[animate]; clearInterval(animate); if (type == 'show' && keep) core.canvas.image.drawImage(image, x, y); - core.clearMap('data'); - core.setOpacity('data', 1); - // core.status.replay.animate=false; + core.setAlpha('data', 1); if (core.isset(callback)) callback(); } + else { + core.setAlpha('data', alpha); + core.canvas.data.drawImage(image, x, y); + core.setAlpha('data', 1); + } }, time / 10); core.animateFrame.asyncId[animate] = true; @@ -1568,7 +1572,6 @@ events.prototype.moveImage = function (image, from, to, time, keep, callback) { time = time || 1000; clearInterval(core.interval.tipAnimate); core.setAlpha('data', 1); - core.setOpacity('data', 1); var width = image.width, height = image.height; diff --git a/libs/maps.js b/libs/maps.js index 45ca5c7b..2c9c5f83 100644 --- a/libs/maps.js +++ b/libs/maps.js @@ -870,7 +870,7 @@ maps.prototype.moveBlock = function(x,y,steps,time,keep,callback) { core.setBlock(id, nowX/32, nowY/32); core.showBlock(nowX/32, nowY/32); } - // core.status.replay.animate=false; + core.setAlpha('route',1); if (core.isset(callback)) callback(); } else { @@ -1009,7 +1009,7 @@ maps.prototype.jumpBlock = function(sx,sy,ex,ey,time,keep,callback) { delete core.animateFrame.asyncId[animate]; clearInterval(animate); core.clearMap('route'); - core.setOpacity('route', 1); + core.setAlpha('route', 1); if (keep) { core.setBlock(id, ex, ey); core.showBlock(ex, ey); @@ -1351,6 +1351,7 @@ maps.prototype.drawAnimateFrame = function (animate, centerX, centerY, index) { core.canvas.animate.drawImage(image, -realWidth/2 - core.bigmap.offsetX, -realHeight/2 - core.bigmap.offsetY, realWidth, realHeight); core.loadCanvas('animate'); } + core.setAlpha('animate', 1); }) } diff --git a/libs/ui.js b/libs/ui.js index 938b29b7..635d0221 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -144,7 +144,7 @@ ui.prototype.setAlpha = function (map, alpha) { else core.canvas[map].globalAlpha = alpha; } -////// 设置某个canvas的透明度 ////// +////// 设置某个canvas的透明度;尽量不要使用本函数,而是全部换成setAlpha实现 ////// ui.prototype.setOpacity = function (map, opacity) { if (map == 'all') { for (var m in core.canvas) { @@ -186,10 +186,9 @@ ui.prototype.closePanel = function () { ////// 左上角绘制一段提示 ////// ui.prototype.drawTip = function (text, itemIcon) { - var textX, textY, width, height, hide = false, opacityVal = 0; + var textX, textY, width, height, hide = false, alpha = 0; clearInterval(core.interval.tipAnimate); core.setFont('data', "16px Arial"); - core.setOpacity('data', 0); core.canvas.data.textAlign = 'left'; if (!core.isset(itemIcon)) { textX = 16; @@ -205,22 +204,22 @@ ui.prototype.drawTip = function (text, itemIcon) { } core.interval.tipAnimate = window.setInterval(function () { if (hide) { - opacityVal -= 0.1; + alpha -= 0.1; } else { - opacityVal += 0.1; + alpha += 0.1; } - core.setOpacity('data', opacityVal); - core.clearMap('data', 5, 5, 400, height); + core.clearMap('data', 5, 5, 416, height); + core.setAlpha('data', alpha); core.fillRect('data', 5, 5, width, height, '#000'); if (core.isset(itemIcon)) { core.canvas.data.drawImage(core.material.images.items, 0, itemIcon * 32, 32, 32, 10, 8, 32, 32); } core.fillText('data', text, textX + 5, textY + 15, '#fff'); - if (opacityVal > 0.6 || opacityVal < 0) { + core.setAlpha('data', 1); + if (alpha > 0.6 || alpha < 0) { if (hide) { - core.clearMap('data', 5, 5, 400, height); - core.setOpacity('data', 1); + core.clearMap('data', 5, 5, 416, height); clearInterval(core.interval.tipAnimate); return; } @@ -231,8 +230,7 @@ ui.prototype.drawTip = function (text, itemIcon) { core.timeout.getItemTipTimeout = null; }, 750); } - opacityVal = 0.6; - core.setOpacity('data', opacityVal); + alpha = 0.6; } } }, 30); @@ -1032,16 +1030,13 @@ ui.prototype.drawBattleAnimate = function(monsterId, callback) { var top = (416-height)/2, bottom = height; - // var left = 97, top = 64, right = 416 - 2 * left, bottom = 416 - 2 * top; - core.setAlpha('ui', 0.85); - core.fillRect('ui', left, top, right, bottom, '#000000'); + core.fillRect('ui', left, top, right, bottom, 'rgba(0,0,0,0.85)'); core.setAlpha('ui', 1); core.strokeRect('ui', left - 1, top - 1, right + 1, bottom + 1, '#FFFFFF', 2); core.clearMap('data'); clearInterval(core.interval.tipAnimate); core.setAlpha('data', 1); - core.setOpacity('data', 1); core.status.boxAnimateObjs = []; var globalFont = core.status.globalAttribute.font; @@ -1388,7 +1383,6 @@ ui.prototype.drawBook = function (index) { clearInterval(core.interval.tipAnimate); core.clearMap('data'); - core.setOpacity('data', 1); core.clearMap('ui'); core.setAlpha('ui', 1); @@ -1624,7 +1618,6 @@ ui.prototype.drawBookDetail = function (index) { clearInterval(core.interval.tipAnimate); core.clearMap('data'); - core.setOpacity('data', 1); var left=10, right=416-2*left; var content_left = left + 25; @@ -1710,8 +1703,7 @@ ui.prototype.drawMaps = function (index, x, y) { core.setAlpha('ui', 1); core.clearMap('animate'); - core.setOpacity('animate', 0.4); - core.fillRect('animate', 0, 0, 416, 416, '#000000'); + core.fillRect('animate', 0, 0, 416, 416, 'rgba(0,0,0,0.4)'); core.strokeRect('ui', 66, 2, 284, 60, "#FFD700", 4); core.strokeRect('ui', 2, 66, 60, 284); @@ -1752,7 +1744,6 @@ ui.prototype.drawMaps = function (index, x, y) { } core.clearMap('animate'); - core.setOpacity('animate', 1); var damage = (core.status.event.data||{}).damage, paint = (core.status.event.data||{}).paint; var all = (core.status.event.data||{}).all; @@ -1793,17 +1784,14 @@ ui.prototype.drawMaps = function (index, x, y) { } core.clearMap('data'); - core.setOpacity('data', 0.2); core.canvas.data.textAlign = 'left'; core.setFont('data', '16px Arial'); var text = core.status.maps[floorId].title; if (!all && (mw>13 || mh>13)) text+=" ["+(x-6)+","+(y-6)+"]"; var textX = 16, textY = 18, width = textX + core.canvas.data.measureText(text).width + 16, height = 42; - core.fillRect('data', 5, 5, width, height, '#000'); - core.setOpacity('data', 0.4); - core.fillText('data', text, textX + 5, textY + 15, '#fff'); - + core.fillRect('data', 5, 5, width, height, 'rgba(0,0,0,0.4)'); + core.fillText('data', text, textX + 5, textY + 15, 'rgba(255,255,255,0.6)'); } ////// 绘制道具栏 ////// @@ -2603,7 +2591,6 @@ ui.prototype.drawPaint = function () { core.clearMap('route'); core.setAlpha('route', 1); - core.setOpacity('route', 1); // 将已有的内容绘制到route上 var value = core.paint[core.status.floorId];