2339 lines
103 KiB
JavaScript
2339 lines
103 KiB
JavaScript
/*
|
|
* (c) Copyright Ascensio System SIA 2010-2015
|
|
*
|
|
* This program is a free software product. You can redistribute it and/or
|
|
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
|
* version 3 as published by the Free Software Foundation. In accordance with
|
|
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
|
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
|
* of any third-party rights.
|
|
*
|
|
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
|
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
|
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
|
*
|
|
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
|
* EU, LV-1021.
|
|
*
|
|
* The interactive user interfaces in modified source and object code versions
|
|
* of the Program must display Appropriate Legal Notices, as required under
|
|
* Section 5 of the GNU AGPL version 3.
|
|
*
|
|
* Pursuant to Section 7(b) of the License you must retain the original Product
|
|
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
|
* grant you any rights under trademark law for use of our trademarks.
|
|
*
|
|
* All the Product's GUI elements, including illustrations and icon sets, as
|
|
* well as technical writing content are licensed under the terms of the
|
|
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
|
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
|
*
|
|
*/
|
|
"use strict";
|
|
function CCacheSlideImage() {
|
|
this.Image = null;
|
|
this.Color = {
|
|
r: 0,
|
|
g: 0,
|
|
b: 0
|
|
};
|
|
}
|
|
var __nextFrame = (function () {
|
|
return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame ||
|
|
function (callback) {
|
|
return setTimeout(callback, 25);
|
|
};
|
|
})();
|
|
var __cancelFrame = (function () {
|
|
return window.cancelRequestAnimationFrame || window.webkitCancelAnimationFrame || window.webkitCancelRequestAnimationFrame || window.mozCancelRequestAnimationFrame || window.oCancelRequestAnimationFrame || window.msCancelRequestAnimationFrame || clearTimeout;
|
|
})();
|
|
function CTransitionAnimation(htmlpage) {
|
|
this.HtmlPage = htmlpage;
|
|
this.Type = 0;
|
|
this.Param = 0;
|
|
this.Duration = 0;
|
|
this.StartTime = 0;
|
|
this.EndTime = 0;
|
|
this.CurrentTime = 0;
|
|
this.CacheImage1 = new CCacheSlideImage();
|
|
this.CacheImage2 = new CCacheSlideImage();
|
|
this.Rect = new _rect();
|
|
this.Params = null;
|
|
this.IsBackward = false;
|
|
this.DemonstrationObject = null;
|
|
this.TimerId = null;
|
|
var oThis = this;
|
|
this.CalculateRect = function () {
|
|
var _page = this.HtmlPage;
|
|
var w = _page.m_oEditor.HtmlElement.width;
|
|
var _px_h = _page.m_oEditor.HtmlElement.height;
|
|
if (this.HtmlPage.bIsRetinaSupport) {
|
|
w >>= 1;
|
|
_px_h >>= 1;
|
|
}
|
|
var h = (((_page.m_oBody.AbsolutePosition.B - _page.m_oBody.AbsolutePosition.T) - (_page.m_oTopRuler.AbsolutePosition.B - _page.m_oTopRuler.AbsolutePosition.T)) * g_dKoef_mm_to_pix) >> 0;
|
|
var _pageWidth = _page.m_oLogicDocument.Width * g_dKoef_mm_to_pix;
|
|
var _pageHeight = _page.m_oLogicDocument.Height * g_dKoef_mm_to_pix;
|
|
var _hor_Zoom = 100;
|
|
if (0 != _pageWidth) {
|
|
_hor_Zoom = (100 * (w - 2 * _page.SlideDrawer.CONST_BORDER)) / _pageWidth;
|
|
}
|
|
var _ver_Zoom = 100;
|
|
if (0 != _pageHeight) {
|
|
_ver_Zoom = (100 * (h - 2 * _page.SlideDrawer.CONST_BORDER)) / _pageHeight;
|
|
}
|
|
var _new_value = (Math.min(_hor_Zoom, _ver_Zoom) - 0.5) >> 0;
|
|
if (_new_value < 5) {
|
|
_new_value = 5;
|
|
}
|
|
var dKoef = (_new_value * g_dKoef_mm_to_pix / 100);
|
|
var _slideW = (dKoef * _page.m_oLogicDocument.Width) >> 0;
|
|
var _slideH = (dKoef * _page.m_oLogicDocument.Height) >> 0;
|
|
var _centerX = (w / 2) >> 0;
|
|
var _centerSlideX = (dKoef * _page.m_oLogicDocument.Width / 2) >> 0;
|
|
var _hor_width_left = Math.min(0, _centerX - (_centerSlideX) - _page.SlideDrawer.CONST_BORDER);
|
|
var _hor_width_right = Math.max(w - 1, _centerX + (_slideW - _centerSlideX) + _page.SlideDrawer.CONST_BORDER);
|
|
var _centerY = (_px_h / 2) >> 0;
|
|
var _centerSlideY = (dKoef * _page.m_oLogicDocument.Height / 2) >> 0;
|
|
var _ver_height_top = Math.min(0, _centerY - _centerSlideY - _page.SlideDrawer.CONST_BORDER);
|
|
var _ver_height_bottom = Math.max(_px_h - 1, _centerX + (_slideH - _centerSlideY) + _page.SlideDrawer.CONST_BORDER);
|
|
this.Rect.x = _centerX - _centerSlideX - _hor_width_left;
|
|
this.Rect.y = _centerY - _centerSlideY - _ver_height_top;
|
|
this.Rect.w = _slideW;
|
|
this.Rect.h = _slideH;
|
|
};
|
|
this.CalculateRectDemonstration = function () {
|
|
var _width = this.HtmlPage.DemonstrationManager.Canvas.width;
|
|
var _height = this.HtmlPage.DemonstrationManager.Canvas.height;
|
|
var _w_mm = this.HtmlPage.m_oLogicDocument.Width;
|
|
var _h_mm = this.HtmlPage.m_oLogicDocument.Height;
|
|
var aspectDisplay = _width / _height;
|
|
var aspectPres = _w_mm / _h_mm;
|
|
var _l = 0;
|
|
var _t = 0;
|
|
var _w = 0;
|
|
var _h = 0;
|
|
if (aspectPres > aspectDisplay) {
|
|
_w = _width;
|
|
_h = _w / aspectPres;
|
|
_l = 0;
|
|
_t = (_height - _h) >> 1;
|
|
} else {
|
|
_h = _height;
|
|
_w = _h * aspectPres;
|
|
_t = 0;
|
|
_l = (_width - _w) >> 1;
|
|
}
|
|
this.Rect.x = _l >> 0;
|
|
this.Rect.y = _t >> 0;
|
|
this.Rect.w = _w >> 0;
|
|
this.Rect.h = _h >> 0;
|
|
};
|
|
this.SetBaseTransform = function () {
|
|
if (this.DemonstrationObject == null) {
|
|
var ctx1 = this.HtmlPage.m_oEditor.HtmlElement.getContext("2d");
|
|
if (this.HtmlPage.bIsRetinaSupport) {
|
|
ctx1.setTransform(2, 0, 0, 2, 0, 0);
|
|
} else {
|
|
ctx1.setTransform(1, 0, 0, 1, 0, 0);
|
|
}
|
|
this.HtmlPage.m_oOverlayApi.SetBaseTransform();
|
|
} else {
|
|
var _ctx1 = oThis.DemonstrationObject.Canvas.getContext("2d");
|
|
_ctx1.setTransform(1, 0, 0, 1, 0, 0);
|
|
var _ctx2 = oThis.DemonstrationObject.Overlay.getContext("2d");
|
|
_ctx2.setTransform(1, 0, 0, 1, 0, 0);
|
|
}
|
|
};
|
|
this.DrawImage1 = function (slide_num, _not_use_prev) {
|
|
if (undefined === slide_num) {
|
|
if (null == this.DemonstrationObject) {
|
|
slide_num = this.HtmlPage.m_oDrawingDocument.SlideCurrent;
|
|
if (slide_num >= this.HtmlPage.m_oDrawingDocument.SlidesCount) {
|
|
slide_num = this.HtmlPage.m_oDrawingDocument.SlidesCount - 1;
|
|
}
|
|
} else {
|
|
slide_num = this.DemonstrationObject.SlideNum;
|
|
if (slide_num >= this.HtmlPage.m_oDrawingDocument.SlidesCount) {
|
|
slide_num = this.HtmlPage.m_oDrawingDocument.SlidesCount - 1;
|
|
}
|
|
}
|
|
}
|
|
if (slide_num > 0 && (_not_use_prev !== true)) {
|
|
var _w = this.Rect.w;
|
|
var _h = this.Rect.h;
|
|
var _w_mm = this.HtmlPage.m_oLogicDocument.Width;
|
|
var _h_mm = this.HtmlPage.m_oLogicDocument.Height;
|
|
this.CacheImage1.Image = this.CreateImage(_w, _h);
|
|
var g = new CGraphics();
|
|
g.init(this.CacheImage1.Image.getContext("2d"), _w, _h, _w_mm, _h_mm);
|
|
g.m_oFontManager = g_fontManager;
|
|
g.transform(1, 0, 0, 1, 0, 0);
|
|
g.IsNoDrawingEmptyPlaceholder = true;
|
|
this.HtmlPage.m_oLogicDocument.DrawPage(slide_num - 1, g);
|
|
}
|
|
};
|
|
this.DrawImage2 = function (slide_num) {
|
|
if (undefined === slide_num) {
|
|
if (null == this.DemonstrationObject) {
|
|
slide_num = this.HtmlPage.m_oDrawingDocument.SlideCurrent;
|
|
if (slide_num >= this.HtmlPage.m_oDrawingDocument.SlidesCount) {
|
|
slide_num = this.HtmlPage.m_oDrawingDocument.SlidesCount - 1;
|
|
}
|
|
} else {
|
|
slide_num = this.DemonstrationObject.SlideNum;
|
|
if (slide_num >= this.HtmlPage.m_oDrawingDocument.SlidesCount) {
|
|
slide_num = this.HtmlPage.m_oDrawingDocument.SlidesCount - 1;
|
|
}
|
|
}
|
|
}
|
|
if (slide_num >= 0) {
|
|
var _w = this.Rect.w;
|
|
var _h = this.Rect.h;
|
|
var _w_mm = this.HtmlPage.m_oLogicDocument.Width;
|
|
var _h_mm = this.HtmlPage.m_oLogicDocument.Height;
|
|
this.CacheImage2.Image = this.CreateImage(_w, _h);
|
|
var g = new CGraphics();
|
|
g.init(this.CacheImage2.Image.getContext("2d"), _w, _h, _w_mm, _h_mm);
|
|
g.m_oFontManager = g_fontManager;
|
|
g.transform(1, 0, 0, 1, 0, 0);
|
|
g.IsNoDrawingEmptyPlaceholder = true;
|
|
this.HtmlPage.m_oLogicDocument.DrawPage(slide_num, g);
|
|
}
|
|
};
|
|
this.Start = function (isButtonPreview) {
|
|
if (true == isButtonPreview) {
|
|
this.CalculateRect();
|
|
var _currentSlide = 0;
|
|
if (null == this.DemonstrationObject) {
|
|
_currentSlide = this.HtmlPage.m_oDrawingDocument.SlideCurrent;
|
|
if (_currentSlide >= this.HtmlPage.m_oDrawingDocument.SlidesCount) {
|
|
_currentSlide = this.HtmlPage.m_oDrawingDocument.SlidesCount - 1;
|
|
}
|
|
} else {
|
|
_currentSlide = this.DemonstrationObject.SlideNum;
|
|
if (_currentSlide >= this.HtmlPage.m_oDrawingDocument.SlidesCount) {
|
|
_currentSlide = this.HtmlPage.m_oDrawingDocument.SlidesCount - 1;
|
|
}
|
|
}
|
|
this.DrawImage1(_currentSlide, false);
|
|
this.DrawImage2(_currentSlide);
|
|
}
|
|
this.StartTime = new Date().getTime();
|
|
this.EndTime = this.StartTime + this.Duration;
|
|
if (this.HtmlPage.bIsRetinaSupport) {
|
|
var ctx1 = oThis.HtmlPage.m_oEditor.HtmlElement.getContext("2d");
|
|
ctx1.setTransform(2, 0, 0, 2, 0, 0);
|
|
}
|
|
switch (this.Type) {
|
|
case c_oAscSlideTransitionTypes.Fade:
|
|
this._startFade();
|
|
break;
|
|
case c_oAscSlideTransitionTypes.Push:
|
|
this._startPush();
|
|
break;
|
|
case c_oAscSlideTransitionTypes.Wipe:
|
|
this._startWipe();
|
|
break;
|
|
case c_oAscSlideTransitionTypes.Split:
|
|
this._startSplit();
|
|
break;
|
|
case c_oAscSlideTransitionTypes.UnCover:
|
|
this._startUnCover();
|
|
break;
|
|
case c_oAscSlideTransitionTypes.Cover:
|
|
this._startCover();
|
|
break;
|
|
case c_oAscSlideTransitionTypes.Clock:
|
|
this._startClock();
|
|
break;
|
|
case c_oAscSlideTransitionTypes.Zoom:
|
|
this._startZoom();
|
|
break;
|
|
default:
|
|
this.End(true);
|
|
break;
|
|
}
|
|
};
|
|
this.End = function (bIsAttack) {
|
|
if (bIsAttack === true && null != this.TimerId) {
|
|
__cancelFrame(this.TimerId);
|
|
}
|
|
this.TimerId = null;
|
|
this.Params = null;
|
|
if (this.DemonstrationObject != null) {
|
|
this.DemonstrationObject.OnEndTransition(bIsAttack);
|
|
this.CacheImage1.Image = null;
|
|
this.CacheImage2.Image = null;
|
|
return;
|
|
}
|
|
this.CacheImage1.Image = null;
|
|
this.CacheImage2.Image = null;
|
|
var ctx1 = this.HtmlPage.m_oEditor.HtmlElement.getContext("2d");
|
|
ctx1.setTransform(1, 0, 0, 1, 0, 0);
|
|
this.HtmlPage.OnScroll();
|
|
};
|
|
this.IsPlaying = function () {
|
|
return (null != this.TimerId) ? true : false;
|
|
};
|
|
this.CreateImage = function (w, h) {
|
|
var _im = document.createElement("canvas");
|
|
_im.width = w;
|
|
_im.height = h;
|
|
return _im;
|
|
};
|
|
this._startFade = function () {
|
|
oThis.CurrentTime = new Date().getTime();
|
|
if (oThis.CurrentTime >= oThis.EndTime) {
|
|
oThis.End(false);
|
|
return;
|
|
}
|
|
oThis.SetBaseTransform();
|
|
if (oThis.TimerId === null) {
|
|
oThis.Params = {
|
|
IsFirstAfterHalf: true
|
|
};
|
|
var _ctx1 = null;
|
|
if (null == oThis.DemonstrationObject) {
|
|
_ctx1 = oThis.HtmlPage.m_oEditor.HtmlElement.getContext("2d");
|
|
_ctx1.fillStyle = GlobalSkin.BackgroundColor;
|
|
_ctx1.fillRect(0, 0, oThis.HtmlPage.m_oEditor.HtmlElement.width, oThis.HtmlPage.m_oEditor.HtmlElement.height);
|
|
} else {
|
|
_ctx1 = oThis.DemonstrationObject.Canvas.getContext("2d");
|
|
_ctx1.fillStyle = "#000000";
|
|
_ctx1.fillRect(0, 0, oThis.DemonstrationObject.Canvas.width, oThis.DemonstrationObject.Canvas.height);
|
|
}
|
|
if (!oThis.IsBackward) {
|
|
if (null != oThis.CacheImage1.Image) {
|
|
_ctx1.drawImage(oThis.CacheImage1.Image, oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
} else {
|
|
var _c = oThis.CacheImage1.Color;
|
|
_ctx1.fillStyle = "rgb(" + _c.r + "," + _c.g + "," + _c.b + ")";
|
|
_ctx1.fillRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
_ctx1.beginPath();
|
|
}
|
|
} else {
|
|
_ctx1.fillStyle = "rgb(0,0,0)";
|
|
_ctx1.fillRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
_ctx1.beginPath();
|
|
}
|
|
}
|
|
var _ctx2 = null;
|
|
if (oThis.DemonstrationObject == null) {
|
|
oThis.HtmlPage.m_oOverlayApi.Clear();
|
|
oThis.HtmlPage.m_oOverlayApi.CheckRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
_ctx2 = oThis.HtmlPage.m_oOverlayApi.m_oContext;
|
|
} else {
|
|
_ctx2 = oThis.DemonstrationObject.Overlay.getContext("2d");
|
|
_ctx2.clearRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
}
|
|
var _part = (oThis.CurrentTime - oThis.StartTime) / oThis.Duration;
|
|
if (oThis.IsBackward) {
|
|
_part = 1 - _part;
|
|
}
|
|
if (oThis.Param == c_oAscSlideTransitionParams.Fade_Smoothly) {
|
|
_ctx2.globalAlpha = _part;
|
|
if (null != oThis.CacheImage2.Image) {
|
|
_ctx2.drawImage(oThis.CacheImage2.Image, oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
} else {
|
|
var _c = oThis.CacheImage2.Color;
|
|
_ctx2.fillStyle = "rgb(" + _c.r + "," + _c.g + "," + _c.b + ")";
|
|
_ctx2.fillRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
_ctx2.beginPath();
|
|
}
|
|
_ctx2.globalAlpha = 1;
|
|
} else {
|
|
if (oThis.Param == c_oAscSlideTransitionParams.Fade_Through_Black) {
|
|
if (!oThis.IsBackward) {
|
|
if (oThis.Params.IsFirstAfterHalf) {
|
|
if (_part > 0.5) {
|
|
var _ctx1 = null;
|
|
if (null == oThis.DemonstrationObject) {
|
|
_ctx1 = oThis.HtmlPage.m_oEditor.HtmlElement.getContext("2d");
|
|
} else {
|
|
_ctx1 = oThis.DemonstrationObject.Canvas.getContext("2d");
|
|
}
|
|
_ctx1.fillStyle = "rgb(0,0,0)";
|
|
_ctx1.fillRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
_ctx1.beginPath();
|
|
oThis.Params.IsFirstAfterHalf = false;
|
|
}
|
|
}
|
|
if (oThis.Params.IsFirstAfterHalf) {
|
|
_ctx2.globalAlpha = (2 * _part);
|
|
_ctx2.fillStyle = "rgb(0,0,0)";
|
|
_ctx2.fillRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
_ctx2.beginPath();
|
|
} else {
|
|
_ctx2.globalAlpha = (2 * (_part - 0.5));
|
|
if (null != oThis.CacheImage2.Image) {
|
|
_ctx2.drawImage(oThis.CacheImage2.Image, oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
} else {
|
|
var _c = oThis.CacheImage2.Color;
|
|
_ctx2.fillStyle = "rgb(" + _c.r + "," + _c.g + "," + _c.b + ")";
|
|
_ctx2.fillRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
_ctx2.beginPath();
|
|
}
|
|
}
|
|
} else {
|
|
if (oThis.Params.IsFirstAfterHalf) {
|
|
if (_part < 0.5) {
|
|
var _ctx1 = null;
|
|
if (null == oThis.DemonstrationObject) {
|
|
_ctx1 = oThis.HtmlPage.m_oEditor.HtmlElement.getContext("2d");
|
|
} else {
|
|
_ctx1 = oThis.DemonstrationObject.Canvas.getContext("2d");
|
|
}
|
|
if (null != oThis.CacheImage1.Image) {
|
|
_ctx1.drawImage(oThis.CacheImage1.Image, oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
} else {
|
|
var _c = oThis.CacheImage1.Color;
|
|
_ctx1.fillStyle = "rgb(" + _c.r + "," + _c.g + "," + _c.b + ")";
|
|
_ctx1.fillRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
_ctx1.beginPath();
|
|
}
|
|
oThis.Params.IsFirstAfterHalf = false;
|
|
}
|
|
}
|
|
if (!oThis.Params.IsFirstAfterHalf) {
|
|
_ctx2.globalAlpha = (2 * _part);
|
|
_ctx2.fillStyle = "rgb(0,0,0)";
|
|
_ctx2.fillRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
_ctx2.beginPath();
|
|
} else {
|
|
_ctx2.globalAlpha = (2 * (_part - 0.5));
|
|
if (null != oThis.CacheImage2.Image) {
|
|
_ctx2.drawImage(oThis.CacheImage2.Image, oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
} else {
|
|
var _c = oThis.CacheImage2.Color;
|
|
_ctx2.fillStyle = "rgb(" + _c.r + "," + _c.g + "," + _c.b + ")";
|
|
_ctx2.fillRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
_ctx2.beginPath();
|
|
}
|
|
}
|
|
}
|
|
_ctx2.globalAlpha = 1;
|
|
}
|
|
}
|
|
oThis.TimerId = __nextFrame(oThis._startFade);
|
|
};
|
|
this._startPush = function () {
|
|
oThis.CurrentTime = new Date().getTime();
|
|
if (oThis.CurrentTime >= oThis.EndTime) {
|
|
oThis.End(false);
|
|
return;
|
|
}
|
|
oThis.SetBaseTransform();
|
|
var _xDst = oThis.Rect.x;
|
|
var _yDst = oThis.Rect.y;
|
|
var _wDst = oThis.Rect.w;
|
|
var _hDst = oThis.Rect.h;
|
|
if (oThis.TimerId === null) {
|
|
oThis.Params = {
|
|
IsFirstAfterHalf: true
|
|
};
|
|
if (null == oThis.DemonstrationObject) {
|
|
var _ctx1 = oThis.HtmlPage.m_oEditor.HtmlElement.getContext("2d");
|
|
_ctx1.fillStyle = GlobalSkin.BackgroundColor;
|
|
_ctx1.fillRect(0, 0, oThis.HtmlPage.m_oEditor.HtmlElement.width, oThis.HtmlPage.m_oEditor.HtmlElement.height);
|
|
} else {
|
|
var _ctx1 = oThis.DemonstrationObject.Canvas.getContext("2d");
|
|
_ctx1.fillStyle = "#000000";
|
|
_ctx1.fillRect(0, 0, oThis.DemonstrationObject.Canvas.width, oThis.DemonstrationObject.Canvas.height);
|
|
}
|
|
}
|
|
var _xSrc = 0;
|
|
var _ySrc = 0;
|
|
var _xDstO = oThis.Rect.x;
|
|
var _yDstO = oThis.Rect.y;
|
|
var _wDstO = oThis.Rect.w;
|
|
var _hDstO = oThis.Rect.h;
|
|
var _xSrcO = 0;
|
|
var _ySrcO = 0;
|
|
var _part = (oThis.CurrentTime - oThis.StartTime) / oThis.Duration;
|
|
if (oThis.IsBackward) {
|
|
_part = 1 - _part;
|
|
}
|
|
var _offX = (_wDst * (1 - _part)) >> 0;
|
|
var _offY = (_hDst * (1 - _part)) >> 0;
|
|
switch (oThis.Param) {
|
|
case c_oAscSlideTransitionParams.Param_Left:
|
|
_xSrc = _offX;
|
|
_wDst -= _offX;
|
|
_xDstO += _wDst;
|
|
_wDstO -= _wDst;
|
|
break;
|
|
case c_oAscSlideTransitionParams.Param_Right:
|
|
_xDst += _offX;
|
|
_wDst -= _offX;
|
|
_xSrcO = _wDst;
|
|
_wDstO -= _wDst;
|
|
break;
|
|
case c_oAscSlideTransitionParams.Param_Top:
|
|
_ySrc = _offY;
|
|
_hDst -= _offY;
|
|
_yDstO += _hDst;
|
|
_hDstO -= _hDst;
|
|
break;
|
|
case c_oAscSlideTransitionParams.Param_Bottom:
|
|
_yDst += _offY;
|
|
_hDst -= _offY;
|
|
_ySrcO = _hDst;
|
|
_hDstO -= _hDst;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
var _ctx2 = null;
|
|
if (null == oThis.DemonstrationObject) {
|
|
oThis.HtmlPage.m_oOverlayApi.Clear();
|
|
oThis.HtmlPage.m_oOverlayApi.CheckRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
_ctx2 = oThis.HtmlPage.m_oOverlayApi.m_oContext;
|
|
} else {
|
|
_ctx2 = oThis.DemonstrationObject.Overlay.getContext("2d");
|
|
}
|
|
if (_wDstO > 0 && _hDstO > 0) {
|
|
if (null != oThis.CacheImage1.Image) {
|
|
_ctx2.drawImage(oThis.CacheImage1.Image, _xSrcO, _ySrcO, _wDstO, _hDstO, _xDstO, _yDstO, _wDstO, _hDstO);
|
|
} else {
|
|
var _c = oThis.CacheImage2.Color;
|
|
_ctx2.fillStyle = "rgb(" + _c.r + "," + _c.g + "," + _c.b + ")";
|
|
_ctx2.fillRect(_xDstO, _yDstO, _wDstO, _hDstO);
|
|
_ctx2.beginPath();
|
|
}
|
|
}
|
|
if (_wDst > 0 && _hDst > 0) {
|
|
if (null != oThis.CacheImage2.Image) {
|
|
_ctx2.drawImage(oThis.CacheImage2.Image, _xSrc, _ySrc, _wDst, _hDst, _xDst, _yDst, _wDst, _hDst);
|
|
} else {
|
|
var _c = oThis.CacheImage2.Color;
|
|
_ctx2.fillStyle = "rgb(" + _c.r + "," + _c.g + "," + _c.b + ")";
|
|
_ctx2.fillRect(_xDst, _yDst, _wDst, _hDst);
|
|
_ctx2.beginPath();
|
|
}
|
|
}
|
|
oThis.TimerId = __nextFrame(oThis._startPush);
|
|
};
|
|
this._startWipe = function () {
|
|
oThis.CurrentTime = new Date().getTime();
|
|
if (oThis.CurrentTime >= oThis.EndTime) {
|
|
oThis.End(false);
|
|
return;
|
|
}
|
|
oThis.SetBaseTransform();
|
|
if (oThis.TimerId === null) {
|
|
var _ctx1 = null;
|
|
if (null == oThis.DemonstrationObject) {
|
|
_ctx1 = oThis.HtmlPage.m_oEditor.HtmlElement.getContext("2d");
|
|
_ctx1.fillStyle = GlobalSkin.BackgroundColor;
|
|
_ctx1.fillRect(0, 0, oThis.HtmlPage.m_oEditor.HtmlElement.width, oThis.HtmlPage.m_oEditor.HtmlElement.height);
|
|
} else {
|
|
_ctx1 = oThis.DemonstrationObject.Canvas.getContext("2d");
|
|
_ctx1.fillStyle = "#000000";
|
|
_ctx1.fillRect(0, 0, oThis.DemonstrationObject.Canvas.width, oThis.DemonstrationObject.Canvas.height);
|
|
}
|
|
if (null != oThis.CacheImage1.Image) {
|
|
_ctx1.drawImage(oThis.CacheImage1.Image, oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
} else {
|
|
var _c = oThis.CacheImage1.Color;
|
|
_ctx1.fillStyle = "rgb(" + _c.r + "," + _c.g + "," + _c.b + ")";
|
|
_ctx1.fillRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
_ctx1.beginPath();
|
|
}
|
|
}
|
|
var _xDst = oThis.Rect.x;
|
|
var _yDst = oThis.Rect.y;
|
|
var _wDst = oThis.Rect.w;
|
|
var _hDst = oThis.Rect.h;
|
|
var _part = (oThis.CurrentTime - oThis.StartTime) / oThis.Duration;
|
|
if (oThis.IsBackward) {
|
|
_part = 1 - _part;
|
|
}
|
|
var _ctx2 = null;
|
|
if (oThis.DemonstrationObject == null) {
|
|
oThis.HtmlPage.m_oOverlayApi.Clear();
|
|
oThis.HtmlPage.m_oOverlayApi.CheckRect(_xDst, _yDst, _wDst, _hDst);
|
|
_ctx2 = oThis.HtmlPage.m_oOverlayApi.m_oContext;
|
|
} else {
|
|
_ctx2 = oThis.DemonstrationObject.Overlay.getContext("2d");
|
|
_ctx2.clearRect(_xDst, _yDst, _wDst, _hDst);
|
|
}
|
|
var _koefWipeLen = 1;
|
|
switch (oThis.Param) {
|
|
case c_oAscSlideTransitionParams.Param_Left:
|
|
if (null == oThis.TimerId) {
|
|
var _canvasTmp = document.createElement("canvas");
|
|
_canvasTmp.width = 256;
|
|
_canvasTmp.height = 1;
|
|
var _canvasTmpCtx = _canvasTmp.getContext("2d");
|
|
var _data = _canvasTmpCtx.createImageData(256, 1);
|
|
for (var i = 0; i < 256; i++) {
|
|
_data.data[4 * i + 3] = 255 - i;
|
|
}
|
|
_canvasTmpCtx.putImageData(_data, 0, 0);
|
|
oThis.Params = {
|
|
GradImage: _canvasTmp
|
|
};
|
|
}
|
|
var _xPosStart = (_xDst - _koefWipeLen * _wDst) >> 0;
|
|
var _xPos = (_xPosStart + (_part * (1 + _koefWipeLen) * _wDst)) >> 0;
|
|
var _gradW = (_koefWipeLen * _wDst) >> 0;
|
|
if (_xPos > _xDst) {
|
|
if ((_xPos + _gradW) > (_xDst + _wDst)) {
|
|
_ctx2.beginPath();
|
|
_ctx2.fillStyle = "#000000";
|
|
_ctx2.fillRect(_xDst, _yDst, _xPos - _xDst + 1, _hDst);
|
|
_ctx2.beginPath();
|
|
var _srcImageW = (256 * (_wDst - _xPos + _xDst) / _gradW) >> 0;
|
|
if (_srcImageW > 0 && (_wDst - _xPos + _xDst) > 0) {
|
|
_ctx2.drawImage(oThis.Params.GradImage, 0, 0, _srcImageW, 1, _xPos, _yDst, _wDst - _xPos + _xDst, _hDst);
|
|
}
|
|
} else {
|
|
_ctx2.beginPath();
|
|
_ctx2.fillStyle = "#000000";
|
|
_ctx2.fillRect(_xDst, _yDst, _xPos - _xDst + 1, _hDst);
|
|
_ctx2.beginPath();
|
|
if (_gradW > 0) {
|
|
_ctx2.drawImage(oThis.Params.GradImage, _xPos, _yDst, _gradW, _hDst);
|
|
}
|
|
}
|
|
} else {
|
|
var _srcImageW = _xPos + _gradW - _xDst;
|
|
var _srcImageWW = 256 * (_xPos + _gradW - _xDst) / _gradW;
|
|
if (_srcImageW > 0 && _srcImageWW > 0) {
|
|
_ctx2.drawImage(oThis.Params.GradImage, 256 - _srcImageWW, 0, _srcImageWW, 1, _xDst, _yDst, _srcImageW, _hDst);
|
|
}
|
|
}
|
|
break;
|
|
case c_oAscSlideTransitionParams.Param_Right:
|
|
if (null == oThis.TimerId) {
|
|
var _canvasTmp = document.createElement("canvas");
|
|
_canvasTmp.width = 256;
|
|
_canvasTmp.height = 1;
|
|
var _canvasTmpCtx = _canvasTmp.getContext("2d");
|
|
var _data = _canvasTmpCtx.createImageData(256, 1);
|
|
for (var i = 0; i < 256; i++) {
|
|
_data.data[4 * i + 3] = i;
|
|
}
|
|
_canvasTmpCtx.putImageData(_data, 0, 0);
|
|
oThis.Params = {
|
|
GradImage: _canvasTmp
|
|
};
|
|
}
|
|
var _rDst = _xDst + _wDst;
|
|
var _xPosStart = (_rDst + _koefWipeLen * _wDst) >> 0;
|
|
var _xPos = (_xPosStart - (_part * (1 + _koefWipeLen) * _wDst)) >> 0;
|
|
var _gradW = (_koefWipeLen * _wDst) >> 0;
|
|
if (_xPos < _rDst) {
|
|
if ((_xPos - _gradW) < _xDst) {
|
|
_ctx2.beginPath();
|
|
_ctx2.fillStyle = "#000000";
|
|
_ctx2.fillRect(_xPos, _yDst, _rDst - _xPos, _hDst);
|
|
_ctx2.beginPath();
|
|
var _srcImageW = (256 * (_xDst - _xPos + _gradW) / _gradW) >> 0;
|
|
if (_srcImageW > 0 && (_xPos - _xDst) > 0) {
|
|
_ctx2.drawImage(oThis.Params.GradImage, _srcImageW, 0, 256 - _srcImageW, 1, _xDst, _yDst, _xPos - _xDst, _hDst);
|
|
}
|
|
} else {
|
|
_ctx2.beginPath();
|
|
_ctx2.fillStyle = "#000000";
|
|
_ctx2.fillRect(_xPos, _yDst, _rDst - _xPos + 1, _hDst);
|
|
_ctx2.beginPath();
|
|
if (_gradW > 0) {
|
|
_ctx2.drawImage(oThis.Params.GradImage, _xPos - _gradW, _yDst, _gradW, _hDst);
|
|
}
|
|
}
|
|
} else {
|
|
var _gradWW = _xPosStart - _xPos;
|
|
if (_gradWW > 0) {
|
|
var _srcImageW = 256 * _gradWW / _gradW;
|
|
if (_srcImageW > 0 && (_rDst - _xPos + _gradW) > 0) {
|
|
_ctx2.drawImage(oThis.Params.GradImage, 0, 0, _srcImageW, 1, _xPos - _gradW, _yDst, _rDst - _xPos + _gradW, _hDst);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case c_oAscSlideTransitionParams.Param_Top:
|
|
if (null == oThis.TimerId) {
|
|
var _canvasTmp = document.createElement("canvas");
|
|
_canvasTmp.width = 1;
|
|
_canvasTmp.height = 256;
|
|
var _canvasTmpCtx = _canvasTmp.getContext("2d");
|
|
var _data = _canvasTmpCtx.createImageData(1, 256);
|
|
for (var i = 0; i < 256; i++) {
|
|
_data.data[4 * i + 3] = 255 - i;
|
|
}
|
|
_canvasTmpCtx.putImageData(_data, 0, 0);
|
|
oThis.Params = {
|
|
GradImage: _canvasTmp
|
|
};
|
|
}
|
|
var _yPosStart = (_yDst - _koefWipeLen * _hDst) >> 0;
|
|
var _yPos = (_yPosStart + (_part * (1 + _koefWipeLen) * _hDst)) >> 0;
|
|
var _gradH = (_koefWipeLen * _hDst) >> 0;
|
|
if (_yPos > _yDst) {
|
|
if ((_yPos + _gradH) > (_yDst + _hDst)) {
|
|
_ctx2.beginPath();
|
|
_ctx2.fillStyle = "#000000";
|
|
_ctx2.fillRect(_xDst, _yDst, _wDst, _yPos - _yDst + 1);
|
|
_ctx2.beginPath();
|
|
var _srcImageH = (256 * (_hDst - _yPos + _yDst) / _gradH) >> 0;
|
|
if (_srcImageH > 0 && (_hDst - _yPos + _yDst) > 0) {
|
|
_ctx2.drawImage(oThis.Params.GradImage, 0, 0, 1, _srcImageH, _xDst, _yPos, _wDst, _hDst - _yPos + _yDst);
|
|
}
|
|
} else {
|
|
_ctx2.beginPath();
|
|
_ctx2.fillStyle = "#000000";
|
|
_ctx2.fillRect(_xDst, _yDst, _wDst, _yPos - _yDst + 1);
|
|
_ctx2.beginPath();
|
|
if (_gradH > 0) {
|
|
_ctx2.drawImage(oThis.Params.GradImage, _xDst, _yPos, _wDst, _gradH);
|
|
}
|
|
}
|
|
} else {
|
|
var _srcImageH = _yPos + _gradH - _yDst;
|
|
var _srcImageHH = 256 * (_yPos + _gradH - _yDst) / _gradH;
|
|
if (_srcImageH > 0 && _srcImageHH > 0) {
|
|
_ctx2.drawImage(oThis.Params.GradImage, 0, 256 - _srcImageHH, 1, _srcImageHH, _xDst, _yDst, _wDst, _srcImageH);
|
|
}
|
|
}
|
|
break;
|
|
case c_oAscSlideTransitionParams.Param_Bottom:
|
|
if (null == oThis.TimerId) {
|
|
var _canvasTmp = document.createElement("canvas");
|
|
_canvasTmp.width = 1;
|
|
_canvasTmp.height = 256;
|
|
var _canvasTmpCtx = _canvasTmp.getContext("2d");
|
|
var _data = _canvasTmpCtx.createImageData(1, 256);
|
|
for (var i = 0; i < 256; i++) {
|
|
_data.data[4 * i + 3] = i;
|
|
}
|
|
_canvasTmpCtx.putImageData(_data, 0, 0);
|
|
oThis.Params = {
|
|
GradImage: _canvasTmp
|
|
};
|
|
}
|
|
var _bDst = _yDst + _hDst;
|
|
var _yPosStart = (_bDst + _koefWipeLen * _hDst) >> 0;
|
|
var _yPos = (_yPosStart - (_part * (1 + _koefWipeLen) * _hDst)) >> 0;
|
|
var _gradH = (_koefWipeLen * _hDst) >> 0;
|
|
if (_yPos < _bDst) {
|
|
if ((_yPos - _gradH) < _yDst) {
|
|
_ctx2.beginPath();
|
|
_ctx2.fillStyle = "#000000";
|
|
_ctx2.fillRect(_xDst, _yPos, _wDst, _bDst - _yPos);
|
|
_ctx2.beginPath();
|
|
var _srcImageH = (256 * (_yPos - _yDst) / _gradH) >> 0;
|
|
if (_srcImageH > 0 && (_yPos - _yDst) > 0) {
|
|
_ctx2.drawImage(oThis.Params.GradImage, 0, 256 - _srcImageH, 1, _srcImageH, _xDst, _yDst, _wDst, _yPos - _yDst);
|
|
}
|
|
} else {
|
|
_ctx2.beginPath();
|
|
_ctx2.fillStyle = "#000000";
|
|
_ctx2.fillRect(_xDst, _yPos, _wDst, _bDst - _yPos);
|
|
_ctx2.beginPath();
|
|
if (_gradH > 0) {
|
|
_ctx2.drawImage(oThis.Params.GradImage, _xDst, _yPos - _gradH, _wDst, _gradH);
|
|
}
|
|
}
|
|
} else {
|
|
var _srcImageH = _bDst - (_yPos - _gradH);
|
|
var _srcImageHH = 256 * _srcImageH / _gradH;
|
|
if (_srcImageH > 0 && _srcImageHH > 0) {
|
|
_ctx2.drawImage(oThis.Params.GradImage, 0, 0, 1, _srcImageHH, _xDst, _bDst - _srcImageH, _wDst, _srcImageH);
|
|
}
|
|
}
|
|
break;
|
|
case c_oAscSlideTransitionParams.Param_TopLeft:
|
|
if (null == oThis.TimerId) {
|
|
var _canvasTmp = document.createElement("canvas");
|
|
_canvasTmp.width = 256;
|
|
_canvasTmp.height = 1;
|
|
var _canvasTmpCtx = _canvasTmp.getContext("2d");
|
|
var _data = _canvasTmpCtx.createImageData(256, 1);
|
|
for (var i = 0; i < 256; i++) {
|
|
_data.data[4 * i + 3] = 255 - i;
|
|
}
|
|
_canvasTmpCtx.putImageData(_data, 0, 0);
|
|
oThis.Params = {
|
|
GradImage: _canvasTmp
|
|
};
|
|
}
|
|
var _ang = Math.atan(_hDst / _wDst);
|
|
var _sin = Math.sin(_ang);
|
|
var _cos = Math.cos(_ang);
|
|
var _hDstN2 = _wDst * _sin;
|
|
var _hDstN = 2 * _hDstN2;
|
|
var _wDstN = _wDst * _cos + _hDst * _sin;
|
|
var _e_off_x = -_sin;
|
|
var _e_off_y = -_cos;
|
|
var _gradW = (_koefWipeLen * _hDstN) >> 0;
|
|
var _cX = _xDst + _wDst / 2;
|
|
var _cY = _yDst + _hDst / 2;
|
|
var _cStartX = _cX + (_hDstN2 + _gradW / 2) * _e_off_x;
|
|
var _cStartY = _cY + (_hDstN2 + _gradW / 2) * _e_off_y;
|
|
var _cPosX = _cStartX - _e_off_x * _part * (_gradW + _hDstN);
|
|
var _cPosY = _cStartY - _e_off_y * _part * (_gradW + _hDstN);
|
|
_ctx2.save();
|
|
_ctx2.beginPath();
|
|
_ctx2.rect(_xDst, _yDst, _wDst, _hDst);
|
|
_ctx2.clip();
|
|
_ctx2.beginPath();
|
|
_ctx2.translate(_cPosX, _cPosY);
|
|
_ctx2.rotate(Math.PI / 2 - _ang);
|
|
_ctx2.fillStyle = "#000000";
|
|
_ctx2.fillRect(-_hDstN2 - _gradW, -_wDstN / 2, _gradW, _wDstN);
|
|
_ctx2.beginPath();
|
|
_ctx2.drawImage(oThis.Params.GradImage, -_hDstN2, -_wDstN / 2, _hDstN, _wDstN);
|
|
_ctx2.restore();
|
|
break;
|
|
case c_oAscSlideTransitionParams.Param_TopRight:
|
|
if (null == oThis.TimerId) {
|
|
var _canvasTmp = document.createElement("canvas");
|
|
_canvasTmp.width = 256;
|
|
_canvasTmp.height = 1;
|
|
var _canvasTmpCtx = _canvasTmp.getContext("2d");
|
|
var _data = _canvasTmpCtx.createImageData(256, 1);
|
|
for (var i = 0; i < 256; i++) {
|
|
_data.data[4 * i + 3] = i;
|
|
}
|
|
_canvasTmpCtx.putImageData(_data, 0, 0);
|
|
oThis.Params = {
|
|
GradImage: _canvasTmp
|
|
};
|
|
}
|
|
var _ang = Math.atan(_hDst / _wDst);
|
|
var _sin = Math.sin(_ang);
|
|
var _cos = Math.cos(_ang);
|
|
var _wDstN2 = _wDst * _sin;
|
|
var _wDstN = 2 * _wDstN2;
|
|
var _hDstN = _wDst * _cos + _hDst * _sin;
|
|
var _e_off_x = _sin;
|
|
var _e_off_y = -_cos;
|
|
var _gradW = (_koefWipeLen * _wDstN) >> 0;
|
|
var _cX = _xDst + _wDst / 2;
|
|
var _cY = _yDst + _hDst / 2;
|
|
var _cStartX = _cX + (_wDstN2 + _gradW / 2) * _e_off_x;
|
|
var _cStartY = _cY + (_wDstN2 + _gradW / 2) * _e_off_y;
|
|
var _cPosX = _cStartX - _e_off_x * _part * (_gradW + _wDstN);
|
|
var _cPosY = _cStartY - _e_off_y * _part * (_gradW + _wDstN);
|
|
_ctx2.save();
|
|
_ctx2.beginPath();
|
|
_ctx2.rect(_xDst, _yDst, _wDst, _hDst);
|
|
_ctx2.clip();
|
|
_ctx2.beginPath();
|
|
_ctx2.translate(_cPosX, _cPosY);
|
|
_ctx2.rotate(_ang - Math.PI / 2);
|
|
_ctx2.fillStyle = "#000000";
|
|
_ctx2.fillRect(_wDstN2, -_hDstN / 2, _gradW, _hDstN);
|
|
_ctx2.beginPath();
|
|
_ctx2.drawImage(oThis.Params.GradImage, -_wDstN2, -_hDstN / 2, _wDstN, _hDstN);
|
|
_ctx2.restore();
|
|
break;
|
|
case c_oAscSlideTransitionParams.Param_BottomLeft:
|
|
if (null == oThis.TimerId) {
|
|
var _canvasTmp = document.createElement("canvas");
|
|
_canvasTmp.width = 256;
|
|
_canvasTmp.height = 1;
|
|
var _canvasTmpCtx = _canvasTmp.getContext("2d");
|
|
var _data = _canvasTmpCtx.createImageData(256, 1);
|
|
for (var i = 0; i < 256; i++) {
|
|
_data.data[4 * i + 3] = 255 - i;
|
|
}
|
|
_canvasTmpCtx.putImageData(_data, 0, 0);
|
|
oThis.Params = {
|
|
GradImage: _canvasTmp
|
|
};
|
|
}
|
|
var _ang = Math.atan(_hDst / _wDst);
|
|
var _sin = Math.sin(_ang);
|
|
var _cos = Math.cos(_ang);
|
|
var _wDstN2 = _wDst * _sin;
|
|
var _wDstN = 2 * _wDstN2;
|
|
var _hDstN = _wDst * _cos + _hDst * _sin;
|
|
var _e_off_x = _sin;
|
|
var _e_off_y = -_cos;
|
|
var _gradW = (_koefWipeLen * _wDstN) >> 0;
|
|
var _cX = _xDst + _wDst / 2;
|
|
var _cY = _yDst + _hDst / 2;
|
|
var _cStartX = _cX - (_wDstN2 + _gradW / 2) * _e_off_x;
|
|
var _cStartY = _cY - (_wDstN2 + _gradW / 2) * _e_off_y;
|
|
var _cPosX = _cStartX + _e_off_x * _part * (_gradW + _wDstN);
|
|
var _cPosY = _cStartY + _e_off_y * _part * (_gradW + _wDstN);
|
|
_ctx2.save();
|
|
_ctx2.beginPath();
|
|
_ctx2.rect(_xDst, _yDst, _wDst, _hDst);
|
|
_ctx2.clip();
|
|
_ctx2.beginPath();
|
|
_ctx2.translate(_cPosX, _cPosY);
|
|
_ctx2.rotate(_ang - Math.PI / 2);
|
|
_ctx2.fillStyle = "#000000";
|
|
_ctx2.fillRect(-_wDstN2 - _gradW, -_hDstN / 2, _gradW, _hDstN);
|
|
_ctx2.beginPath();
|
|
_ctx2.drawImage(oThis.Params.GradImage, -_wDstN2, -_hDstN / 2, _wDstN, _hDstN);
|
|
_ctx2.restore();
|
|
break;
|
|
case c_oAscSlideTransitionParams.Param_BottomRight:
|
|
if (null == oThis.TimerId) {
|
|
var _canvasTmp = document.createElement("canvas");
|
|
_canvasTmp.width = 256;
|
|
_canvasTmp.height = 1;
|
|
var _canvasTmpCtx = _canvasTmp.getContext("2d");
|
|
var _data = _canvasTmpCtx.createImageData(256, 1);
|
|
for (var i = 0; i < 256; i++) {
|
|
_data.data[4 * i + 3] = i;
|
|
}
|
|
_canvasTmpCtx.putImageData(_data, 0, 0);
|
|
oThis.Params = {
|
|
GradImage: _canvasTmp
|
|
};
|
|
}
|
|
var _ang = Math.atan(_hDst / _wDst);
|
|
var _sin = Math.sin(_ang);
|
|
var _cos = Math.cos(_ang);
|
|
var _hDstN2 = _wDst * _sin;
|
|
var _hDstN = 2 * _hDstN2;
|
|
var _wDstN = _wDst * _cos + _hDst * _sin;
|
|
var _e_off_x = _sin;
|
|
var _e_off_y = _cos;
|
|
var _gradW = (_koefWipeLen * _hDstN) >> 0;
|
|
var _cX = _xDst + _wDst / 2;
|
|
var _cY = _yDst + _hDst / 2;
|
|
var _cStartX = _cX + (_hDstN2 + _gradW / 2) * _e_off_x;
|
|
var _cStartY = _cY + (_hDstN2 + _gradW / 2) * _e_off_y;
|
|
var _cPosX = _cStartX - _e_off_x * _part * (_gradW + _hDstN);
|
|
var _cPosY = _cStartY - _e_off_y * _part * (_gradW + _hDstN);
|
|
_ctx2.save();
|
|
_ctx2.beginPath();
|
|
_ctx2.rect(_xDst, _yDst, _wDst, _hDst);
|
|
_ctx2.clip();
|
|
_ctx2.beginPath();
|
|
_ctx2.translate(_cPosX, _cPosY);
|
|
_ctx2.rotate(Math.PI / 2 - _ang);
|
|
_ctx2.fillStyle = "#000000";
|
|
_ctx2.fillRect(_hDstN2, -_wDstN / 2, _gradW, _wDstN);
|
|
_ctx2.beginPath();
|
|
_ctx2.drawImage(oThis.Params.GradImage, -_hDstN2, -_wDstN / 2, _hDstN, _wDstN);
|
|
_ctx2.restore();
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
_ctx2.globalCompositeOperation = "source-atop";
|
|
if (null != oThis.CacheImage2.Image) {
|
|
_ctx2.drawImage(oThis.CacheImage2.Image, _xDst, _yDst, _wDst, _hDst);
|
|
} else {
|
|
var _c = oThis.CacheImage2.Color;
|
|
_ctx2.fillStyle = "rgb(" + _c.r + "," + _c.g + "," + _c.b + ")";
|
|
_ctx2.fillRect(_xDst, _yDst, _wDst, _hDst);
|
|
_ctx2.beginPath();
|
|
}
|
|
_ctx2.globalCompositeOperation = "source-over";
|
|
oThis.TimerId = __nextFrame(oThis._startWipe);
|
|
};
|
|
this._startSplit = function () {
|
|
oThis.CurrentTime = new Date().getTime();
|
|
if (oThis.CurrentTime >= oThis.EndTime) {
|
|
oThis.End(false);
|
|
return;
|
|
}
|
|
oThis.SetBaseTransform();
|
|
var _xDst = oThis.Rect.x;
|
|
var _yDst = oThis.Rect.y;
|
|
var _wDst = oThis.Rect.w;
|
|
var _hDst = oThis.Rect.h;
|
|
var _part = (oThis.CurrentTime - oThis.StartTime) / oThis.Duration;
|
|
if (oThis.IsBackward) {
|
|
_part = 1 - _part;
|
|
}
|
|
var _ctx2 = null;
|
|
if (oThis.DemonstrationObject == null) {
|
|
oThis.HtmlPage.m_oOverlayApi.Clear();
|
|
oThis.HtmlPage.m_oOverlayApi.CheckRect(_xDst, _yDst, _wDst, _hDst);
|
|
_ctx2 = oThis.HtmlPage.m_oOverlayApi.m_oContext;
|
|
} else {
|
|
_ctx2 = oThis.DemonstrationObject.Overlay.getContext("2d");
|
|
_ctx2.clearRect(_xDst, _yDst, _wDst, _hDst);
|
|
}
|
|
if (oThis.TimerId === null) {
|
|
var _ctx1 = null;
|
|
if (null == oThis.DemonstrationObject) {
|
|
_ctx1 = oThis.HtmlPage.m_oEditor.HtmlElement.getContext("2d");
|
|
_ctx1.fillStyle = GlobalSkin.BackgroundColor;
|
|
_ctx1.fillRect(0, 0, oThis.HtmlPage.m_oEditor.HtmlElement.width, oThis.HtmlPage.m_oEditor.HtmlElement.height);
|
|
} else {
|
|
_ctx1 = oThis.DemonstrationObject.Canvas.getContext("2d");
|
|
_ctx1.fillStyle = "#000000";
|
|
_ctx1.fillRect(0, 0, oThis.DemonstrationObject.Canvas.width, oThis.DemonstrationObject.Canvas.height);
|
|
}
|
|
if (null != oThis.CacheImage1.Image) {
|
|
_ctx1.drawImage(oThis.CacheImage1.Image, oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
} else {
|
|
var _c = oThis.CacheImage1.Color;
|
|
_ctx1.fillStyle = "rgb(" + _c.r + "," + _c.g + "," + _c.b + ")";
|
|
_ctx1.fillRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
_ctx1.beginPath();
|
|
}
|
|
}
|
|
var _koefWipeLen = 1;
|
|
switch (oThis.Param) {
|
|
case c_oAscSlideTransitionParams.Split_VerticalOut:
|
|
if (oThis.TimerId === null) {
|
|
var _canvasTmp = document.createElement("canvas");
|
|
var __w = 256 + 255;
|
|
_canvasTmp.width = __w;
|
|
_canvasTmp.height = 1;
|
|
var _canvasTmpCtx = _canvasTmp.getContext("2d");
|
|
var _data = _canvasTmpCtx.createImageData(_canvasTmp.width, 1);
|
|
for (var i = 0; i < 256; i++) {
|
|
_data.data[4 * i + 3] = i;
|
|
}
|
|
for (var i = 256; i < __w; i++) {
|
|
_data.data[4 * i + 3] = __w - i - 1;
|
|
}
|
|
_canvasTmpCtx.putImageData(_data, 0, 0);
|
|
oThis.Params = {
|
|
GradImage: _canvasTmp
|
|
};
|
|
}
|
|
var _cX = _xDst + _wDst / 2;
|
|
if (_part <= 0.5) {
|
|
var _w = (_part * 2 * _wDst) >> 0;
|
|
var _w2 = _w >> 1;
|
|
if (_w > 0 && _w2 > 0) {
|
|
_ctx2.beginPath();
|
|
_ctx2.fillStyle = "#000000";
|
|
_ctx2.fillRect(Math.max(_xDst, _cX - _w2 / 2 - 1), _yDst, Math.min(_w2 + 2, _wDst), _hDst);
|
|
_ctx2.beginPath();
|
|
var _w4 = _w2 >> 1;
|
|
var _x = _cX - _w2;
|
|
var _r = _cX + _w4;
|
|
_ctx2.drawImage(oThis.Params.GradImage, 0, 0, 255, 1, _x, _yDst, _w4, _hDst);
|
|
_ctx2.drawImage(oThis.Params.GradImage, 255, 0, 255, 1, _r, _yDst, _w4, _hDst);
|
|
}
|
|
} else {
|
|
var _w = (_part * _wDst) >> 0;
|
|
var _w2 = _w >> 1;
|
|
_ctx2.beginPath();
|
|
_ctx2.fillStyle = "#000000";
|
|
_ctx2.fillRect(Math.max(_xDst, _cX - _w2 - 1), _yDst, Math.min(_w + 2, _wDst), _hDst);
|
|
_ctx2.beginPath();
|
|
var _gradWW = (_wDst - _w) >> 1;
|
|
var _gradW = (_wDst / 4) >> 0;
|
|
var _srcOff = 256 * _gradWW / _gradW;
|
|
if (_gradWW > 0) {
|
|
_ctx2.drawImage(oThis.Params.GradImage, 0, 0, 255, 1, _xDst, _yDst, _gradWW, _hDst);
|
|
_ctx2.drawImage(oThis.Params.GradImage, 255, 0, 255, 1, _cX + _w2, _yDst, _gradWW, _hDst);
|
|
}
|
|
}
|
|
break;
|
|
case c_oAscSlideTransitionParams.Split_VerticalIn:
|
|
if (oThis.TimerId === null) {
|
|
var _canvasTmp = document.createElement("canvas");
|
|
var __w = 256 + 255;
|
|
_canvasTmp.width = __w;
|
|
_canvasTmp.height = 1;
|
|
var _canvasTmpCtx = _canvasTmp.getContext("2d");
|
|
var _data = _canvasTmpCtx.createImageData(_canvasTmp.width, 1);
|
|
for (var i = 0; i < 256; i++) {
|
|
_data.data[4 * i + 3] = i;
|
|
}
|
|
for (var i = 256; i < __w; i++) {
|
|
_data.data[4 * i + 3] = __w - i - 1;
|
|
}
|
|
_canvasTmpCtx.putImageData(_data, 0, 0);
|
|
oThis.Params = {
|
|
GradImage: _canvasTmp
|
|
};
|
|
}
|
|
var _cX = _xDst + _wDst / 2;
|
|
if (_part <= 0.5) {
|
|
var _w = (_part * 2 * _wDst) >> 0;
|
|
var _w2 = _w >> 1;
|
|
var _w4 = _w2 >> 1;
|
|
if (_w4 > 0) {
|
|
_ctx2.beginPath();
|
|
_ctx2.fillStyle = "#000000";
|
|
_ctx2.fillRect(_xDst, _yDst, _w4 + 1, _hDst);
|
|
_ctx2.beginPath();
|
|
_ctx2.fillRect(_xDst + _wDst - _w4 - 1, _yDst, _w4 + 1, _hDst);
|
|
_ctx2.beginPath();
|
|
var _x = _xDst + _w4;
|
|
var _r = _xDst + _wDst - _w2;
|
|
_ctx2.drawImage(oThis.Params.GradImage, 255, 0, 255, 1, _x, _yDst, _w4, _hDst);
|
|
_ctx2.drawImage(oThis.Params.GradImage, 0, 0, 255, 1, _r, _yDst, _w4, _hDst);
|
|
}
|
|
} else {
|
|
var _w = (_part * _wDst) >> 0;
|
|
var _w2 = _w >> 1;
|
|
_ctx2.beginPath();
|
|
_ctx2.fillStyle = "#000000";
|
|
_ctx2.fillRect(_xDst, _yDst, _w2 + 1, _hDst);
|
|
_ctx2.beginPath();
|
|
_ctx2.fillRect(_xDst + _wDst - _w2 - 1, _yDst, _w2 + 1, _hDst);
|
|
_ctx2.beginPath();
|
|
var _gradWW = (_wDst - _w) >> 1;
|
|
var _gradW = (_wDst / 4) >> 0;
|
|
var _srcOff = 256 * _gradWW / _gradW;
|
|
if (_gradWW > 0) {
|
|
_ctx2.drawImage(oThis.Params.GradImage, 255, 0, 255, 1, _xDst + _w2, _yDst, _gradWW, _hDst);
|
|
_ctx2.drawImage(oThis.Params.GradImage, 0, 0, 255, 1, _cX, _yDst, _gradWW, _hDst);
|
|
}
|
|
}
|
|
break;
|
|
case c_oAscSlideTransitionParams.Split_HorizontalOut:
|
|
if (oThis.TimerId === null) {
|
|
var _canvasTmp = document.createElement("canvas");
|
|
var __w = 256 + 255;
|
|
_canvasTmp.width = 1;
|
|
_canvasTmp.height = __w;
|
|
var _canvasTmpCtx = _canvasTmp.getContext("2d");
|
|
var _data = _canvasTmpCtx.createImageData(1, __w);
|
|
for (var i = 0; i < 256; i++) {
|
|
_data.data[4 * i + 3] = i;
|
|
}
|
|
for (var i = 256; i < __w; i++) {
|
|
_data.data[4 * i + 3] = __w - i - 1;
|
|
}
|
|
_canvasTmpCtx.putImageData(_data, 0, 0);
|
|
oThis.Params = {
|
|
GradImage: _canvasTmp
|
|
};
|
|
}
|
|
var _cY = _yDst + _hDst / 2;
|
|
if (_part <= 0.5) {
|
|
var _h = (_part * 2 * _hDst) >> 0;
|
|
var _h2 = _h >> 1;
|
|
if (_h > 0 && _h2 > 0) {
|
|
_ctx2.beginPath();
|
|
_ctx2.fillStyle = "#000000";
|
|
_ctx2.fillRect(_xDst, Math.max(_cY - _h2 / 2 - 1), _wDst, Math.min(_h2 + 2, _hDst));
|
|
_ctx2.beginPath();
|
|
var _h4 = _h2 >> 1;
|
|
var _y = _cY - _h2;
|
|
var _b = _cY + _h4;
|
|
_ctx2.drawImage(oThis.Params.GradImage, 0, 0, 1, 255, _xDst, _y, _wDst, _h4);
|
|
_ctx2.drawImage(oThis.Params.GradImage, 0, 255, 1, 255, _xDst, _b, _wDst, _h4);
|
|
}
|
|
} else {
|
|
var _h = (_part * _hDst) >> 0;
|
|
var _h2 = _h >> 1;
|
|
_ctx2.beginPath();
|
|
_ctx2.fillStyle = "#000000";
|
|
_ctx2.fillRect(_xDst, Math.max(_yDst, _cY - _h2 - 1), _wDst, Math.min(_h + 2, _hDst));
|
|
_ctx2.beginPath();
|
|
var _gradHH = (_hDst - _h) >> 1;
|
|
var _gradH = (_hDst / 4) >> 0;
|
|
if (_gradHH > 0) {
|
|
_ctx2.drawImage(oThis.Params.GradImage, 0, 0, 1, 255, _xDst, _yDst, _wDst, _gradHH);
|
|
_ctx2.drawImage(oThis.Params.GradImage, 0, 255, 1, 255, _xDst, _cY + _h2, _wDst, _gradHH);
|
|
}
|
|
}
|
|
break;
|
|
case c_oAscSlideTransitionParams.Split_HorizontalIn:
|
|
if (oThis.TimerId === null) {
|
|
var _canvasTmp = document.createElement("canvas");
|
|
var __w = 256 + 255;
|
|
_canvasTmp.width = 1;
|
|
_canvasTmp.height = __w;
|
|
var _canvasTmpCtx = _canvasTmp.getContext("2d");
|
|
var _data = _canvasTmpCtx.createImageData(1, __w);
|
|
for (var i = 0; i < 256; i++) {
|
|
_data.data[4 * i + 3] = i;
|
|
}
|
|
for (var i = 256; i < __w; i++) {
|
|
_data.data[4 * i + 3] = __w - i - 1;
|
|
}
|
|
_canvasTmpCtx.putImageData(_data, 0, 0);
|
|
oThis.Params = {
|
|
GradImage: _canvasTmp
|
|
};
|
|
}
|
|
var _cY = _yDst + _hDst / 2;
|
|
if (_part <= 0.5) {
|
|
var _h = (_part * 2 * _hDst) >> 0;
|
|
var _h2 = _h >> 1;
|
|
var _h4 = _h2 >> 1;
|
|
if (_h4 > 0) {
|
|
_ctx2.beginPath();
|
|
_ctx2.fillStyle = "#000000";
|
|
_ctx2.fillRect(_xDst, _yDst, _wDst, _h4 + 1);
|
|
_ctx2.beginPath();
|
|
_ctx2.fillRect(_xDst, _yDst + _hDst - _h4 - 1, _wDst, _h4 + 1);
|
|
_ctx2.beginPath();
|
|
var _y = _yDst + _h4;
|
|
var _b = _yDst + _hDst - _h2;
|
|
_ctx2.drawImage(oThis.Params.GradImage, 0, 255, 1, 255, _xDst, _y, _wDst, _h4);
|
|
_ctx2.drawImage(oThis.Params.GradImage, 0, 0, 1, 255, _xDst, _b, _wDst, _h4);
|
|
}
|
|
} else {
|
|
var _h = (_part * _hDst) >> 0;
|
|
var _h2 = _h >> 1;
|
|
_ctx2.beginPath();
|
|
_ctx2.fillStyle = "#000000";
|
|
_ctx2.fillRect(_xDst, _yDst, _wDst, _h2 + 1);
|
|
_ctx2.beginPath();
|
|
_ctx2.fillRect(_xDst, _yDst + _hDst - _h2 - 1, _wDst, _h2 + 1);
|
|
_ctx2.beginPath();
|
|
var _gradHH = (_hDst - _h) >> 1;
|
|
var _gradH = (_hDst / 4) >> 0;
|
|
if (_gradHH > 0) {
|
|
_ctx2.drawImage(oThis.Params.GradImage, 0, 255, 1, 255, _xDst, _yDst + _h2, _wDst, _gradHH);
|
|
_ctx2.drawImage(oThis.Params.GradImage, 0, 0, 1, 255, _xDst, _cY, _wDst, _gradHH);
|
|
}
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
_ctx2.globalCompositeOperation = "source-atop";
|
|
if (null != oThis.CacheImage2.Image) {
|
|
_ctx2.drawImage(oThis.CacheImage2.Image, _xDst, _yDst, _wDst, _hDst);
|
|
} else {
|
|
var _c = oThis.CacheImage2.Color;
|
|
_ctx2.fillStyle = "rgb(" + _c.r + "," + _c.g + "," + _c.b + ")";
|
|
_ctx2.fillRect(_xDst, _yDst, _wDst, _hDst);
|
|
_ctx2.beginPath();
|
|
}
|
|
_ctx2.globalCompositeOperation = "source-over";
|
|
oThis.TimerId = __nextFrame(oThis._startSplit);
|
|
};
|
|
this._startUnCover = function () {
|
|
oThis.CurrentTime = new Date().getTime();
|
|
if (oThis.CurrentTime >= oThis.EndTime) {
|
|
oThis.End(false);
|
|
return;
|
|
}
|
|
oThis.SetBaseTransform();
|
|
if (oThis.TimerId === null) {
|
|
var _ctx1 = null;
|
|
if (null == oThis.DemonstrationObject) {
|
|
_ctx1 = oThis.HtmlPage.m_oEditor.HtmlElement.getContext("2d");
|
|
_ctx1.fillStyle = GlobalSkin.BackgroundColor;
|
|
_ctx1.fillRect(0, 0, oThis.HtmlPage.m_oEditor.HtmlElement.width, oThis.HtmlPage.m_oEditor.HtmlElement.height);
|
|
} else {
|
|
_ctx1 = oThis.DemonstrationObject.Canvas.getContext("2d");
|
|
_ctx1.fillStyle = "#000000";
|
|
_ctx1.fillRect(0, 0, oThis.DemonstrationObject.Canvas.width, oThis.DemonstrationObject.Canvas.height);
|
|
}
|
|
if (null != oThis.CacheImage2.Image) {
|
|
_ctx1.drawImage(oThis.CacheImage2.Image, oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
} else {
|
|
var _c = oThis.CacheImage2.Color;
|
|
_ctx1.fillStyle = "rgb(" + _c.r + "," + _c.g + "," + _c.b + ")";
|
|
_ctx1.fillRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
_ctx1.beginPath();
|
|
}
|
|
}
|
|
var _xDst = oThis.Rect.x;
|
|
var _yDst = oThis.Rect.y;
|
|
var _wDst = oThis.Rect.w;
|
|
var _hDst = oThis.Rect.h;
|
|
var _xSrc = 0;
|
|
var _ySrc = 0;
|
|
var _part = (oThis.CurrentTime - oThis.StartTime) / oThis.Duration;
|
|
if (oThis.IsBackward) {
|
|
_part = 1 - _part;
|
|
}
|
|
var _offX = (_wDst * _part) >> 0;
|
|
var _offY = (_hDst * _part) >> 0;
|
|
switch (oThis.Param) {
|
|
case c_oAscSlideTransitionParams.Param_Left:
|
|
_xDst += _offX;
|
|
_wDst -= _offX;
|
|
break;
|
|
case c_oAscSlideTransitionParams.Param_Right:
|
|
_xSrc = _offX;
|
|
_wDst -= _offX;
|
|
break;
|
|
case c_oAscSlideTransitionParams.Param_Top:
|
|
_yDst += _offY;
|
|
_hDst -= _offY;
|
|
break;
|
|
case c_oAscSlideTransitionParams.Param_Bottom:
|
|
_ySrc = _offY;
|
|
_hDst -= _offY;
|
|
break;
|
|
case c_oAscSlideTransitionParams.Param_TopLeft:
|
|
_xDst += _offX;
|
|
_yDst += _offY;
|
|
_wDst -= _offX;
|
|
_hDst -= _offY;
|
|
break;
|
|
case c_oAscSlideTransitionParams.Param_TopRight:
|
|
_xSrc = _offX;
|
|
_yDst += _offY;
|
|
_wDst -= _offX;
|
|
_hDst -= _offY;
|
|
break;
|
|
case c_oAscSlideTransitionParams.Param_BottomLeft:
|
|
_xDst += _offX;
|
|
_ySrc = _offY;
|
|
_wDst -= _offX;
|
|
_hDst -= _offY;
|
|
break;
|
|
case c_oAscSlideTransitionParams.Param_BottomRight:
|
|
_xSrc = _offX;
|
|
_ySrc = _offY;
|
|
_wDst -= _offX;
|
|
_hDst -= _offY;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
var _ctx2 = null;
|
|
if (oThis.DemonstrationObject == null) {
|
|
oThis.HtmlPage.m_oOverlayApi.Clear();
|
|
oThis.HtmlPage.m_oOverlayApi.CheckRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
_ctx2 = oThis.HtmlPage.m_oOverlayApi.m_oContext;
|
|
} else {
|
|
_ctx2 = oThis.DemonstrationObject.Overlay.getContext("2d");
|
|
_ctx2.clearRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
}
|
|
if (_wDst > 0 && _hDst > 0) {
|
|
if (null != oThis.CacheImage1.Image) {
|
|
_ctx2.drawImage(oThis.CacheImage1.Image, _xSrc, _ySrc, _wDst, _hDst, _xDst, _yDst, _wDst, _hDst);
|
|
} else {
|
|
var _c = oThis.CacheImage1.Color;
|
|
_ctx2.fillStyle = "rgb(" + _c.r + "," + _c.g + "," + _c.b + ")";
|
|
_ctx2.fillRect(_xDst, _yDst, _wDst, _hDst);
|
|
_ctx2.beginPath();
|
|
}
|
|
}
|
|
oThis.TimerId = __nextFrame(oThis._startUnCover);
|
|
};
|
|
this._startCover = function () {
|
|
oThis.CurrentTime = new Date().getTime();
|
|
if (oThis.CurrentTime >= oThis.EndTime) {
|
|
oThis.End(false);
|
|
return;
|
|
}
|
|
oThis.SetBaseTransform();
|
|
if (oThis.TimerId === null) {
|
|
var _ctx1 = null;
|
|
if (null == oThis.DemonstrationObject) {
|
|
_ctx1 = oThis.HtmlPage.m_oEditor.HtmlElement.getContext("2d");
|
|
_ctx1.fillStyle = GlobalSkin.BackgroundColor;
|
|
_ctx1.fillRect(0, 0, oThis.HtmlPage.m_oEditor.HtmlElement.width, oThis.HtmlPage.m_oEditor.HtmlElement.height);
|
|
} else {
|
|
_ctx1 = oThis.DemonstrationObject.Canvas.getContext("2d");
|
|
_ctx1.fillStyle = "#000000";
|
|
_ctx1.fillRect(0, 0, oThis.DemonstrationObject.Canvas.width, oThis.DemonstrationObject.Canvas.height);
|
|
}
|
|
if (null != oThis.CacheImage1.Image) {
|
|
_ctx1.drawImage(oThis.CacheImage1.Image, oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
} else {
|
|
var _c = oThis.CacheImage1.Color;
|
|
_ctx1.fillStyle = "rgb(" + _c.r + "," + _c.g + "," + _c.b + ")";
|
|
_ctx1.fillRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
_ctx1.beginPath();
|
|
}
|
|
}
|
|
var _xDst = oThis.Rect.x;
|
|
var _yDst = oThis.Rect.y;
|
|
var _wDst = oThis.Rect.w;
|
|
var _hDst = oThis.Rect.h;
|
|
var _xSrc = 0;
|
|
var _ySrc = 0;
|
|
var _part = (oThis.CurrentTime - oThis.StartTime) / oThis.Duration;
|
|
if (oThis.IsBackward) {
|
|
_part = 1 - _part;
|
|
}
|
|
var _offX = (_wDst * (1 - _part)) >> 0;
|
|
var _offY = (_hDst * (1 - _part)) >> 0;
|
|
switch (oThis.Param) {
|
|
case c_oAscSlideTransitionParams.Param_Left:
|
|
_xSrc = _offX;
|
|
_wDst -= _offX;
|
|
break;
|
|
case c_oAscSlideTransitionParams.Param_Right:
|
|
_xDst += _offX;
|
|
_wDst -= _offX;
|
|
break;
|
|
case c_oAscSlideTransitionParams.Param_Top:
|
|
_ySrc = _offY;
|
|
_hDst -= _offY;
|
|
break;
|
|
case c_oAscSlideTransitionParams.Param_Bottom:
|
|
_yDst += _offY;
|
|
_hDst -= _offY;
|
|
break;
|
|
case c_oAscSlideTransitionParams.Param_TopLeft:
|
|
_xSrc = _offX;
|
|
_ySrc = _offY;
|
|
_wDst -= _offX;
|
|
_hDst -= _offY;
|
|
break;
|
|
case c_oAscSlideTransitionParams.Param_TopRight:
|
|
_xDst += _offX;
|
|
_ySrc = _offY;
|
|
_wDst -= _offX;
|
|
_hDst -= _offY;
|
|
break;
|
|
case c_oAscSlideTransitionParams.Param_BottomLeft:
|
|
_xSrc = _offX;
|
|
_yDst += _offY;
|
|
_wDst -= _offX;
|
|
_hDst -= _offY;
|
|
break;
|
|
case c_oAscSlideTransitionParams.Param_BottomRight:
|
|
_xDst += _offX;
|
|
_yDst += _offY;
|
|
_wDst -= _offX;
|
|
_hDst -= _offY;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
var _ctx2 = null;
|
|
if (oThis.DemonstrationObject == null) {
|
|
oThis.HtmlPage.m_oOverlayApi.Clear();
|
|
oThis.HtmlPage.m_oOverlayApi.CheckRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
_ctx2 = oThis.HtmlPage.m_oOverlayApi.m_oContext;
|
|
} else {
|
|
_ctx2 = oThis.DemonstrationObject.Overlay.getContext("2d");
|
|
_ctx2.clearRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
}
|
|
if (_wDst > 0 && _hDst > 0) {
|
|
if (null != oThis.CacheImage2.Image) {
|
|
_ctx2.drawImage(oThis.CacheImage2.Image, _xSrc, _ySrc, _wDst, _hDst, _xDst, _yDst, _wDst, _hDst);
|
|
} else {
|
|
var _c = oThis.CacheImage2.Color;
|
|
_ctx2.fillStyle = "rgb(" + _c.r + "," + _c.g + "," + _c.b + ")";
|
|
_ctx2.fillRect(_xDst, _yDst, _wDst, _hDst);
|
|
_ctx2.beginPath();
|
|
}
|
|
}
|
|
oThis.TimerId = __nextFrame(oThis._startCover);
|
|
};
|
|
this._startClock = function () {
|
|
oThis.CurrentTime = new Date().getTime();
|
|
if (oThis.CurrentTime >= oThis.EndTime) {
|
|
oThis.End(false);
|
|
return;
|
|
}
|
|
oThis.SetBaseTransform();
|
|
if (oThis.TimerId === null) {
|
|
var _ctx1 = null;
|
|
if (null == oThis.DemonstrationObject) {
|
|
_ctx1 = oThis.HtmlPage.m_oEditor.HtmlElement.getContext("2d");
|
|
_ctx1.fillStyle = GlobalSkin.BackgroundColor;
|
|
_ctx1.fillRect(0, 0, oThis.HtmlPage.m_oEditor.HtmlElement.width, oThis.HtmlPage.m_oEditor.HtmlElement.height);
|
|
} else {
|
|
_ctx1 = oThis.DemonstrationObject.Canvas.getContext("2d");
|
|
_ctx1.fillStyle = "#000000";
|
|
_ctx1.fillRect(0, 0, oThis.DemonstrationObject.Canvas.width, oThis.DemonstrationObject.Canvas.height);
|
|
}
|
|
if (null != oThis.CacheImage1.Image) {
|
|
_ctx1.drawImage(oThis.CacheImage1.Image, oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
} else {
|
|
var _c = oThis.CacheImage1.Color;
|
|
_ctx1.fillStyle = "rgb(" + _c.r + "," + _c.g + "," + _c.b + ")";
|
|
_ctx1.fillRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
_ctx1.beginPath();
|
|
}
|
|
}
|
|
var _xDst = oThis.Rect.x;
|
|
var _yDst = oThis.Rect.y;
|
|
var _wDst = oThis.Rect.w;
|
|
var _hDst = oThis.Rect.h;
|
|
var _part = (oThis.CurrentTime - oThis.StartTime) / oThis.Duration;
|
|
if (oThis.IsBackward) {
|
|
_part = 1 - _part;
|
|
}
|
|
var _anglePart1 = Math.atan(_wDst / _hDst);
|
|
var _anglePart2 = Math.PI / 2 - _anglePart1;
|
|
var _offset = 0;
|
|
var _ctx2 = null;
|
|
if (oThis.DemonstrationObject == null) {
|
|
oThis.HtmlPage.m_oOverlayApi.Clear();
|
|
oThis.HtmlPage.m_oOverlayApi.CheckRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
_ctx2 = oThis.HtmlPage.m_oOverlayApi.m_oContext;
|
|
} else {
|
|
_ctx2 = oThis.DemonstrationObject.Overlay.getContext("2d");
|
|
_ctx2.clearRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
}
|
|
_ctx2.save();
|
|
_ctx2.beginPath();
|
|
var _cX = _xDst + _wDst / 2;
|
|
var _cY = _yDst + _hDst / 2;
|
|
switch (oThis.Param) {
|
|
case c_oAscSlideTransitionParams.Clock_Clockwise:
|
|
var _angle = 2 * Math.PI * _part;
|
|
var _x = 0;
|
|
var _y = 0;
|
|
var _mainPart = (2 * _angle / Math.PI) >> 0;
|
|
var _nomainPart = _angle - (_mainPart * Math.PI / 2);
|
|
switch (_mainPart) {
|
|
case 0:
|
|
if (_nomainPart > _anglePart1) {
|
|
_offset = _wDst * Math.tan((Math.PI / 2) - _nomainPart) / 2;
|
|
_x = _xDst + _wDst;
|
|
_y = _cY - _offset;
|
|
_ctx2.moveTo(_cX, _cY);
|
|
_ctx2.lineTo(_cX, _yDst);
|
|
_ctx2.lineTo(_x, _yDst);
|
|
_ctx2.lineTo(_x, _y);
|
|
_ctx2.closePath();
|
|
} else {
|
|
_offset = _hDst * Math.tan(_nomainPart) / 2;
|
|
_x = _cX + _offset;
|
|
_y = _yDst;
|
|
_ctx2.moveTo(_cX, _cY);
|
|
_ctx2.lineTo(_cX, _yDst);
|
|
_ctx2.lineTo(_x, _y);
|
|
_ctx2.closePath();
|
|
}
|
|
break;
|
|
case 1:
|
|
if (_nomainPart > _anglePart2) {
|
|
_offset = _hDst * Math.tan((Math.PI / 2) - _nomainPart) / 2;
|
|
_x = _cX + _offset;
|
|
_y = _yDst + _hDst;
|
|
_ctx2.moveTo(_cX, _cY);
|
|
_ctx2.lineTo(_cX, _yDst);
|
|
_ctx2.lineTo(_xDst + _wDst, _yDst);
|
|
_ctx2.lineTo(_xDst + _wDst, _yDst + _hDst);
|
|
_ctx2.lineTo(_x, _y);
|
|
_ctx2.closePath();
|
|
} else {
|
|
_offset = _wDst * Math.tan(_nomainPart) / 2;
|
|
_x = _xDst + _wDst;
|
|
_y = _cY + _offset;
|
|
_ctx2.moveTo(_cX, _cY);
|
|
_ctx2.lineTo(_cX, _yDst);
|
|
_ctx2.lineTo(_x, _yDst);
|
|
_ctx2.lineTo(_x, _y);
|
|
_ctx2.closePath();
|
|
}
|
|
break;
|
|
case 2:
|
|
if (_nomainPart > _anglePart1) {
|
|
_offset = _wDst * Math.tan((Math.PI / 2) - _nomainPart) / 2;
|
|
_x = _xDst;
|
|
_y = _cY + _offset;
|
|
_ctx2.moveTo(_cX, _cY);
|
|
_ctx2.lineTo(_cX, _yDst);
|
|
_ctx2.lineTo(_xDst + _wDst, _yDst);
|
|
_ctx2.lineTo(_xDst + _wDst, _yDst + _hDst);
|
|
_ctx2.lineTo(_xDst, _yDst + _hDst);
|
|
_ctx2.lineTo(_x, _y);
|
|
_ctx2.closePath();
|
|
} else {
|
|
_offset = _hDst * Math.tan(_nomainPart) / 2;
|
|
_x = _cX - _offset;
|
|
_y = _yDst + _hDst;
|
|
_ctx2.moveTo(_cX, _cY);
|
|
_ctx2.lineTo(_cX, _yDst);
|
|
_ctx2.lineTo(_xDst + _wDst, _yDst);
|
|
_ctx2.lineTo(_xDst + _wDst, _yDst + _hDst);
|
|
_ctx2.lineTo(_x, _y);
|
|
_ctx2.closePath();
|
|
}
|
|
break;
|
|
case 3:
|
|
if (_nomainPart > _anglePart2) {
|
|
_offset = _hDst * Math.tan((Math.PI / 2) - _nomainPart) / 2;
|
|
_x = _cX - _offset;
|
|
_y = _yDst;
|
|
_ctx2.moveTo(_cX, _cY);
|
|
_ctx2.lineTo(_cX, _yDst);
|
|
_ctx2.lineTo(_xDst + _wDst, _yDst);
|
|
_ctx2.lineTo(_xDst + _wDst, _yDst + _hDst);
|
|
_ctx2.lineTo(_xDst, _yDst + _hDst);
|
|
_ctx2.lineTo(_xDst, _yDst);
|
|
_ctx2.lineTo(_x, _y);
|
|
_ctx2.closePath();
|
|
} else {
|
|
_offset = _wDst * Math.tan(_nomainPart) / 2;
|
|
_x = _xDst;
|
|
_y = _cY - _offset;
|
|
_ctx2.moveTo(_cX, _cY);
|
|
_ctx2.lineTo(_cX, _yDst);
|
|
_ctx2.lineTo(_xDst + _wDst, _yDst);
|
|
_ctx2.lineTo(_xDst + _wDst, _yDst + _hDst);
|
|
_ctx2.lineTo(_xDst, _yDst + _hDst);
|
|
_ctx2.lineTo(_x, _y);
|
|
_ctx2.closePath();
|
|
}
|
|
break;
|
|
}
|
|
break;
|
|
case c_oAscSlideTransitionParams.Clock_Counterclockwise:
|
|
var _angle = 2 * Math.PI * _part;
|
|
var _x = 0;
|
|
var _y = 0;
|
|
var _mainPart = (2 * _angle / Math.PI) >> 0;
|
|
var _nomainPart = _angle - (_mainPart * Math.PI / 2);
|
|
switch (_mainPart) {
|
|
case 0:
|
|
if (_nomainPart > _anglePart1) {
|
|
_offset = _wDst * Math.tan((Math.PI / 2) - _nomainPart) / 2;
|
|
_x = _xDst;
|
|
_y = _cY - _offset;
|
|
_ctx2.moveTo(_cX, _cY);
|
|
_ctx2.lineTo(_cX, _yDst);
|
|
_ctx2.lineTo(_x, _yDst);
|
|
_ctx2.lineTo(_x, _y);
|
|
_ctx2.closePath();
|
|
} else {
|
|
_offset = _hDst * Math.tan(_nomainPart) / 2;
|
|
_x = _cX - _offset;
|
|
_y = _yDst;
|
|
_ctx2.moveTo(_cX, _cY);
|
|
_ctx2.lineTo(_cX, _yDst);
|
|
_ctx2.lineTo(_x, _y);
|
|
_ctx2.closePath();
|
|
}
|
|
break;
|
|
case 1:
|
|
if (_nomainPart > _anglePart2) {
|
|
_offset = _hDst * Math.tan((Math.PI / 2) - _nomainPart) / 2;
|
|
_x = _cX - _offset;
|
|
_y = _yDst + _hDst;
|
|
_ctx2.moveTo(_cX, _cY);
|
|
_ctx2.lineTo(_cX, _yDst);
|
|
_ctx2.lineTo(_xDst, _yDst);
|
|
_ctx2.lineTo(_xDst, _yDst + _hDst);
|
|
_ctx2.lineTo(_x, _y);
|
|
_ctx2.closePath();
|
|
} else {
|
|
_offset = _wDst * Math.tan(_nomainPart) / 2;
|
|
_x = _xDst;
|
|
_y = _cY + _offset;
|
|
_ctx2.moveTo(_cX, _cY);
|
|
_ctx2.lineTo(_cX, _yDst);
|
|
_ctx2.lineTo(_x, _yDst);
|
|
_ctx2.lineTo(_x, _y);
|
|
_ctx2.closePath();
|
|
}
|
|
break;
|
|
case 2:
|
|
if (_nomainPart > _anglePart1) {
|
|
_offset = _wDst * Math.tan((Math.PI / 2) - _nomainPart) / 2;
|
|
_x = _xDst + _wDst;
|
|
_y = _cY + _offset;
|
|
_ctx2.moveTo(_cX, _cY);
|
|
_ctx2.lineTo(_cX, _yDst);
|
|
_ctx2.lineTo(_xDst, _yDst);
|
|
_ctx2.lineTo(_xDst, _yDst + _hDst);
|
|
_ctx2.lineTo(_xDst + _wDst, _yDst + _hDst);
|
|
_ctx2.lineTo(_x, _y);
|
|
_ctx2.closePath();
|
|
} else {
|
|
_offset = _hDst * Math.tan(_nomainPart) / 2;
|
|
_x = _cX + _offset;
|
|
_y = _yDst + _hDst;
|
|
_ctx2.moveTo(_cX, _cY);
|
|
_ctx2.lineTo(_cX, _yDst);
|
|
_ctx2.lineTo(_xDst, _yDst);
|
|
_ctx2.lineTo(_xDst, _yDst + _hDst);
|
|
_ctx2.lineTo(_x, _y);
|
|
_ctx2.closePath();
|
|
}
|
|
break;
|
|
case 3:
|
|
if (_nomainPart > _anglePart2) {
|
|
_offset = _hDst * Math.tan((Math.PI / 2) - _nomainPart) / 2;
|
|
_x = _cX + _offset;
|
|
_y = _yDst;
|
|
_ctx2.moveTo(_cX, _cY);
|
|
_ctx2.lineTo(_cX, _yDst);
|
|
_ctx2.lineTo(_xDst, _yDst);
|
|
_ctx2.lineTo(_xDst, _yDst + _hDst);
|
|
_ctx2.lineTo(_xDst + _wDst, _yDst + _hDst);
|
|
_ctx2.lineTo(_xDst + _wDst, _yDst);
|
|
_ctx2.lineTo(_x, _y);
|
|
_ctx2.closePath();
|
|
} else {
|
|
_offset = _wDst * Math.tan(_nomainPart) / 2;
|
|
_x = _xDst + _wDst;
|
|
_y = _cY - _offset;
|
|
_ctx2.moveTo(_cX, _cY);
|
|
_ctx2.lineTo(_cX, _yDst);
|
|
_ctx2.lineTo(_xDst, _yDst);
|
|
_ctx2.lineTo(_xDst, _yDst + _hDst);
|
|
_ctx2.lineTo(_xDst + _wDst, _yDst + _hDst);
|
|
_ctx2.lineTo(_x, _y);
|
|
_ctx2.closePath();
|
|
}
|
|
break;
|
|
}
|
|
break;
|
|
case c_oAscSlideTransitionParams.Clock_Wedge:
|
|
var _angle = Math.PI * _part;
|
|
var _x = 0;
|
|
var _y = 0;
|
|
var _mainPart = (2 * _angle / Math.PI) >> 0;
|
|
var _nomainPart = _angle - (_mainPart * Math.PI / 2);
|
|
switch (_mainPart) {
|
|
case 0:
|
|
if (_nomainPart > _anglePart1) {
|
|
_offset = _wDst * Math.tan((Math.PI / 2) - _nomainPart) / 2;
|
|
_ctx2.moveTo(_cX, _cY);
|
|
_ctx2.lineTo(_xDst, _cY - _offset);
|
|
_ctx2.lineTo(_xDst, _yDst);
|
|
_ctx2.lineTo(_xDst + _wDst, _yDst);
|
|
_ctx2.lineTo(_xDst + _wDst, _cY - _offset);
|
|
_ctx2.closePath();
|
|
} else {
|
|
_offset = _hDst * Math.tan(_nomainPart) / 2;
|
|
_ctx2.moveTo(_cX, _cY);
|
|
_ctx2.lineTo(_cX - _offset, _yDst);
|
|
_ctx2.lineTo(_cX + _offset, _yDst);
|
|
_ctx2.closePath();
|
|
}
|
|
break;
|
|
case 1:
|
|
if (_nomainPart > _anglePart2) {
|
|
_offset = _hDst * Math.tan((Math.PI / 2) - _nomainPart) / 2;
|
|
_ctx2.moveTo(_cX, _cY);
|
|
_ctx2.lineTo(_cX - _offset, _yDst + _hDst);
|
|
_ctx2.lineTo(_xDst, _yDst + _hDst);
|
|
_ctx2.lineTo(_xDst, _yDst);
|
|
_ctx2.lineTo(_xDst + _wDst, _yDst);
|
|
_ctx2.lineTo(_xDst + _wDst, _yDst + _hDst);
|
|
_ctx2.lineTo(_cX + _offset, _yDst + _hDst);
|
|
_ctx2.closePath();
|
|
} else {
|
|
_offset = _wDst * Math.tan(_nomainPart) / 2;
|
|
_ctx2.moveTo(_cX, _cY);
|
|
_ctx2.lineTo(_xDst, _cY + _offset);
|
|
_ctx2.lineTo(_xDst, _yDst);
|
|
_ctx2.lineTo(_xDst + _wDst, _yDst);
|
|
_ctx2.lineTo(_xDst + _wDst, _cY + _offset);
|
|
}
|
|
break;
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
_ctx2.clip();
|
|
if (_wDst > 0 && _hDst > 0) {
|
|
if (null != oThis.CacheImage2.Image) {
|
|
_ctx2.drawImage(oThis.CacheImage2.Image, _xDst, _yDst, _wDst, _hDst);
|
|
} else {
|
|
var _c = oThis.CacheImage2.Color;
|
|
_ctx2.fillStyle = "rgb(" + _c.r + "," + _c.g + "," + _c.b + ")";
|
|
_ctx2.fillRect(_xDst, _yDst, _wDst, _hDst);
|
|
_ctx2.beginPath();
|
|
}
|
|
}
|
|
_ctx2.restore();
|
|
oThis.TimerId = __nextFrame(oThis._startClock);
|
|
};
|
|
this._startZoom = function () {
|
|
oThis.CurrentTime = new Date().getTime();
|
|
if (oThis.CurrentTime >= oThis.EndTime) {
|
|
oThis.End(false);
|
|
return;
|
|
}
|
|
oThis.SetBaseTransform();
|
|
var _xDst = oThis.Rect.x;
|
|
var _yDst = oThis.Rect.y;
|
|
var _wDst = oThis.Rect.w;
|
|
var _hDst = oThis.Rect.h;
|
|
var _part = (oThis.CurrentTime - oThis.StartTime) / oThis.Duration;
|
|
if (oThis.IsBackward) {
|
|
_part = 1 - _part;
|
|
}
|
|
switch (oThis.Param) {
|
|
case c_oAscSlideTransitionParams.Zoom_In:
|
|
var _ctx1 = null;
|
|
if (null == oThis.DemonstrationObject) {
|
|
_ctx1 = oThis.HtmlPage.m_oEditor.HtmlElement.getContext("2d");
|
|
_ctx1.fillStyle = GlobalSkin.BackgroundColor;
|
|
_ctx1.fillRect(0, 0, oThis.HtmlPage.m_oEditor.HtmlElement.width, oThis.HtmlPage.m_oEditor.HtmlElement.height);
|
|
} else {
|
|
_ctx1 = oThis.DemonstrationObject.Canvas.getContext("2d");
|
|
_ctx1.fillStyle = "#000000";
|
|
_ctx1.fillRect(0, 0, oThis.DemonstrationObject.Canvas.width, oThis.DemonstrationObject.Canvas.height);
|
|
}
|
|
var _w = ((0.5 * _wDst) * (1 + _part)) >> 0;
|
|
var _h = ((0.5 * _hDst) * (1 + _part)) >> 0;
|
|
var _x = (_wDst - _w) >> 1;
|
|
var _y = (_hDst - _h) >> 1;
|
|
var _x1 = (0.25 * _wDst - _x) >> 0;
|
|
var _y1 = (0.25 * _hDst - _y) >> 0;
|
|
var _w1 = _wDst - 2 * _x1;
|
|
var _h1 = _hDst - 2 * _y1;
|
|
if (_w > 0 && _h > 0) {
|
|
if (null != oThis.CacheImage2.Image) {
|
|
_ctx1.drawImage(oThis.CacheImage2.Image, _xDst + _x, _yDst + _y, _w, _h);
|
|
} else {
|
|
var _c = oThis.CacheImage2.Color;
|
|
_ctx1.fillStyle = "rgb(" + _c.r + "," + _c.g + "," + _c.b + ")";
|
|
_ctx1.fillRect(_xDst + _x, _yDst + _y, _w, _h);
|
|
_ctx1.beginPath();
|
|
}
|
|
}
|
|
_ctx1.globalAlpha = (1 - _part);
|
|
if (null != oThis.CacheImage1.Image) {
|
|
_ctx1.drawImage(oThis.CacheImage1.Image, _x1, _y1, _w1, _h1, _xDst, _yDst, _wDst, _hDst);
|
|
} else {
|
|
var _c = oThis.CacheImage1.Color;
|
|
_ctx1.fillStyle = "rgb(" + _c.r + "," + _c.g + "," + _c.b + ")";
|
|
_ctx1.fillRect(_xDst, _yDst, _wDst, _hDst);
|
|
_ctx1.beginPath();
|
|
}
|
|
_ctx1.globalAlpha = 1;
|
|
break;
|
|
case c_oAscSlideTransitionParams.Zoom_Out:
|
|
var _ctx1 = null;
|
|
if (null == oThis.DemonstrationObject) {
|
|
_ctx1 = oThis.HtmlPage.m_oEditor.HtmlElement.getContext("2d");
|
|
_ctx1.fillStyle = GlobalSkin.BackgroundColor;
|
|
_ctx1.fillRect(0, 0, oThis.HtmlPage.m_oEditor.HtmlElement.width, oThis.HtmlPage.m_oEditor.HtmlElement.height);
|
|
} else {
|
|
_ctx1 = oThis.DemonstrationObject.Canvas.getContext("2d");
|
|
_ctx1.fillStyle = "#000000";
|
|
_ctx1.fillRect(0, 0, oThis.DemonstrationObject.Canvas.width, oThis.DemonstrationObject.Canvas.height);
|
|
}
|
|
_part = 1 - _part;
|
|
var _w = ((0.5 * _wDst) * (1 + _part)) >> 0;
|
|
var _h = ((0.5 * _hDst) * (1 + _part)) >> 0;
|
|
var _x = (_wDst - _w) >> 1;
|
|
var _y = (_hDst - _h) >> 1;
|
|
var _x1 = (0.25 * _wDst - _x) >> 0;
|
|
var _y1 = (0.25 * _hDst - _y) >> 0;
|
|
var _w1 = _wDst - 2 * _x1;
|
|
var _h1 = _hDst - 2 * _y1;
|
|
if (_w > 0 && _h > 0) {
|
|
if (null != oThis.CacheImage1.Image) {
|
|
_ctx1.drawImage(oThis.CacheImage1.Image, _xDst + _x, _yDst + _y, _w, _h);
|
|
} else {
|
|
var _c = oThis.CacheImage1.Color;
|
|
_ctx1.fillStyle = "rgb(" + _c.r + "," + _c.g + "," + _c.b + ")";
|
|
_ctx1.fillRect(_xDst + _x, _yDst + _y, _w, _h);
|
|
_ctx1.beginPath();
|
|
}
|
|
}
|
|
_ctx1.globalAlpha = (1 - _part);
|
|
if (null != oThis.CacheImage2.Image) {
|
|
_ctx1.drawImage(oThis.CacheImage2.Image, _x1, _y1, _w1, _h1, _xDst, _yDst, _wDst, _hDst);
|
|
} else {
|
|
var _c = oThis.CacheImage2.Color;
|
|
_ctx1.fillStyle = "rgb(" + _c.r + "," + _c.g + "," + _c.b + ")";
|
|
_ctx1.fillRect(_xDst, _yDst, _wDst, _hDst);
|
|
_ctx1.beginPath();
|
|
}
|
|
_ctx1.globalAlpha = 1;
|
|
break;
|
|
case c_oAscSlideTransitionParams.Zoom_AndRotate:
|
|
if (oThis.TimerId === null) {
|
|
var _ctx1 = null;
|
|
if (null == oThis.DemonstrationObject) {
|
|
_ctx1 = oThis.HtmlPage.m_oEditor.HtmlElement.getContext("2d");
|
|
_ctx1.fillStyle = GlobalSkin.BackgroundColor;
|
|
_ctx1.fillRect(0, 0, oThis.HtmlPage.m_oEditor.HtmlElement.width, oThis.HtmlPage.m_oEditor.HtmlElement.height);
|
|
} else {
|
|
_ctx1 = oThis.DemonstrationObject.Canvas.getContext("2d");
|
|
_ctx1.fillStyle = "#000000";
|
|
_ctx1.fillRect(0, 0, oThis.DemonstrationObject.Canvas.width, oThis.DemonstrationObject.Canvas.height);
|
|
}
|
|
if (null != oThis.CacheImage1.Image) {
|
|
_ctx1.drawImage(oThis.CacheImage1.Image, oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
} else {
|
|
var _c = oThis.CacheImage1.Color;
|
|
_ctx1.fillStyle = "rgb(" + _c.r + "," + _c.g + "," + _c.b + ")";
|
|
_ctx1.fillRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
_ctx1.beginPath();
|
|
}
|
|
}
|
|
var _ctx2 = null;
|
|
if (oThis.DemonstrationObject == null) {
|
|
oThis.HtmlPage.m_oOverlayApi.Clear();
|
|
oThis.HtmlPage.m_oOverlayApi.CheckRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
_ctx2 = oThis.HtmlPage.m_oOverlayApi.m_oContext;
|
|
} else {
|
|
_ctx2 = oThis.DemonstrationObject.Overlay.getContext("2d");
|
|
_ctx2.clearRect(oThis.Rect.x, oThis.Rect.y, oThis.Rect.w, oThis.Rect.h);
|
|
}
|
|
var _angle = -45 + 405 * _part;
|
|
var _scale = (0.05 + 0.95 * _part);
|
|
_angle *= (Math.PI / 180);
|
|
_ctx2.save();
|
|
_ctx2.beginPath();
|
|
_ctx2.rect(_xDst, _yDst, _wDst, _hDst);
|
|
_ctx2.clip();
|
|
_ctx2.beginPath();
|
|
var _xC = _xDst + _wDst / 2;
|
|
var _yC = _yDst + _hDst / 2;
|
|
var localTransform = new CMatrixL();
|
|
global_MatrixTransformer.TranslateAppend(localTransform, -_xC, -_yC);
|
|
global_MatrixTransformer.ScaleAppend(localTransform, _scale, _scale);
|
|
global_MatrixTransformer.RotateRadAppend(localTransform, _angle);
|
|
global_MatrixTransformer.TranslateAppend(localTransform, _xC, _yC);
|
|
_ctx2.transform(localTransform.sx, localTransform.shy, localTransform.shx, localTransform.sy, localTransform.tx, localTransform.ty);
|
|
if (null != oThis.CacheImage2.Image) {
|
|
_ctx2.drawImage(oThis.CacheImage2.Image, _xDst, _yDst, _wDst, _hDst);
|
|
} else {
|
|
var _c = oThis.CacheImage2.Color;
|
|
_ctx2.fillStyle = "rgb(" + _c.r + "," + _c.g + "," + _c.b + ")";
|
|
_ctx2.fillRect(_xDst, _yDst, _wDst, _hDst);
|
|
_ctx2.beginPath();
|
|
}
|
|
_ctx2.restore();
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
oThis.TimerId = __nextFrame(oThis._startZoom);
|
|
};
|
|
}
|
|
function CDemonstrationManager(htmlpage) {
|
|
this.HtmlPage = htmlpage;
|
|
this.Transition = new CTransitionAnimation(htmlpage);
|
|
this.DivWidth = 0;
|
|
this.DivHeight = 0;
|
|
this.MainDivId = "";
|
|
this.DemonstrationDiv = null;
|
|
this.DivEndPresentation = null;
|
|
this.EndShowMessage = "";
|
|
this.SlideNum = -1;
|
|
this.SlidesCount = 0;
|
|
this.Mode = false;
|
|
this.Canvas = null;
|
|
this.Overlay = null;
|
|
this.SlideImage = null;
|
|
this.IsPlayMode = true;
|
|
this.CheckSlideDuration = -1;
|
|
this.Transition.DemonstrationObject = this;
|
|
this.CacheImagesManager = new CCacheManager();
|
|
this.SlideImages = new Array(2);
|
|
this.SlideImages[0] = null;
|
|
this.SlideImages[1] = null;
|
|
this.SlideIndexes = new Array(2);
|
|
this.SlideIndexes[0] = -1;
|
|
this.SlideIndexes[1] = -1;
|
|
var oThis = this;
|
|
this.CacheSlide = function (slide_num, slide_index) {
|
|
var _w = this.Transition.Rect.w;
|
|
var _h = this.Transition.Rect.h;
|
|
var _w_mm = this.HtmlPage.m_oLogicDocument.Width;
|
|
var _h_mm = this.HtmlPage.m_oLogicDocument.Height;
|
|
var _image = this.CacheImagesManager.Lock(_w, _h);
|
|
var g = new CGraphics();
|
|
g.init(_image.image.getContext("2d"), _w, _h, _w_mm, _h_mm);
|
|
g.m_oFontManager = g_fontManager;
|
|
g.transform(1, 0, 0, 1, 0, 0);
|
|
g.IsNoDrawingEmptyPlaceholder = true;
|
|
this.HtmlPage.m_oLogicDocument.DrawPage(slide_num, g);
|
|
this.SlideImages[slide_index] = new CCacheSlideImage();
|
|
this.SlideImages[slide_index].Image = _image;
|
|
this.SlideIndexes[slide_index] = slide_num;
|
|
};
|
|
this.PrepareTransition = function (is_first, is_backward) {
|
|
var _slide1 = -1;
|
|
var _slide2 = -1;
|
|
this.Transition.IsBackward = false;
|
|
if (is_first) {
|
|
_slide1 = -1;
|
|
_slide2 = this.SlideNum;
|
|
} else {
|
|
if (!is_backward) {
|
|
if (this.SlideNum > 0) {
|
|
_slide1 = this.SlideNum - 1;
|
|
}
|
|
_slide2 = this.SlideNum;
|
|
} else {
|
|
this.Transition.IsBackward = true;
|
|
_slide1 = this.SlideNum - 1;
|
|
_slide2 = this.SlideNum;
|
|
}
|
|
}
|
|
this.Transition.CalculateRectDemonstration();
|
|
if (this.SlideIndexes[0] != -1 && this.SlideIndexes[0] != _slide1 && this.SlideIndexes[0] != _slide2) {
|
|
this.CacheImagesManager.UnLock(this.SlideImages[0]);
|
|
this.SlideImages[0] = null;
|
|
this.SlideIndexes[0] = -1;
|
|
}
|
|
if (this.SlideIndexes[1] != -1 && this.SlideIndexes[1] != _slide1 && this.SlideIndexes[1] != _slide2) {
|
|
this.CacheImagesManager.UnLock(this.SlideImages[1]);
|
|
this.SlideImages[1] = null;
|
|
this.SlideIndexes[1] = -1;
|
|
}
|
|
if (_slide1 == -1) {
|
|
this.Transition.CacheImage1.Image = null;
|
|
} else {
|
|
if (_slide1 == this.SlideIndexes[0]) {
|
|
this.Transition.CacheImage1.Image = this.SlideImages[0].Image.image;
|
|
} else {
|
|
if (_slide1 == this.SlideIndexes[1]) {
|
|
this.Transition.CacheImage1.Image = this.SlideImages[1].Image.image;
|
|
} else {
|
|
if (-1 == this.SlideIndexes[0]) {
|
|
this.CacheSlide(_slide1, 0);
|
|
this.Transition.CacheImage1.Image = this.SlideImages[0].Image.image;
|
|
} else {
|
|
this.CacheSlide(_slide1, 1);
|
|
this.Transition.CacheImage1.Image = this.SlideImages[1].Image.image;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (_slide2 == -1) {
|
|
this.Transition.CacheImage2.Image = null;
|
|
} else {
|
|
if (_slide2 == this.SlideIndexes[0]) {
|
|
this.Transition.CacheImage2.Image = this.SlideImages[0].Image.image;
|
|
} else {
|
|
if (_slide2 == this.SlideIndexes[1]) {
|
|
this.Transition.CacheImage2.Image = this.SlideImages[1].Image.image;
|
|
} else {
|
|
if (-1 == this.SlideIndexes[0]) {
|
|
this.CacheSlide(_slide2, 0);
|
|
this.Transition.CacheImage2.Image = this.SlideImages[0].Image.image;
|
|
} else {
|
|
this.CacheSlide(_slide2, 1);
|
|
this.Transition.CacheImage2.Image = this.SlideImages[1].Image.image;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
this.PrepareSlide = function () {
|
|
if (this.SlideNum < 0 || this.SlideNum >= this.SlidesCount) {
|
|
this.SlideImage = -1;
|
|
return;
|
|
} else {
|
|
if (this.SlideNum != this.SlideIndexes[0]) {
|
|
this.CacheImagesManager.UnLock(this.SlideImages[0]);
|
|
this.SlideImages[0] = null;
|
|
this.SlideIndexes[0] = -1;
|
|
}
|
|
if (this.SlideNum != this.SlideIndexes[1]) {
|
|
this.CacheImagesManager.UnLock(this.SlideImages[1]);
|
|
this.SlideImages[1] = null;
|
|
this.SlideIndexes[1] = -1;
|
|
}
|
|
if (this.SlideNum == this.SlideIndexes[0]) {
|
|
this.SlideImage = 0;
|
|
} else {
|
|
if (this.SlideNum == this.SlideIndexes[1]) {
|
|
this.SlideImage = 1;
|
|
} else {
|
|
this.CacheSlide(this.SlideNum, 0);
|
|
this.SlideImage = 0;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
this.Start = function (main_div_id, start_slide_num, is_play_mode) {
|
|
this.SlidesCount = this.HtmlPage.m_oDrawingDocument.SlidesCount;
|
|
this.DemonstrationDiv = document.getElementById(main_div_id);
|
|
if (this.DemonstrationDiv == null || start_slide_num < 0 || start_slide_num >= this.SlidesCount) {
|
|
return;
|
|
}
|
|
this.MainDivId = main_div_id;
|
|
var _width = this.DemonstrationDiv.clientWidth;
|
|
var _height = this.DemonstrationDiv.clientHeight;
|
|
this.DivWidth = _width;
|
|
this.DivHeight = _height;
|
|
this.Mode = true;
|
|
this.Canvas = document.createElement("canvas");
|
|
this.Canvas.setAttribute("style", "position:absolute;margin:0;padding:0;left:0px;top:0px;width:100%;height:100%;zIndex:2;background-color:#000000;");
|
|
this.Canvas.width = _width;
|
|
this.Canvas.height = _height;
|
|
this.SlideNum = start_slide_num;
|
|
this.HtmlPage.m_oApi.sync_DemonstrationSlideChanged(this.SlideNum);
|
|
this.Canvas.onmouseup = this.onMouseUp;
|
|
this.Canvas.onmousewheel = this.onMouseWhell;
|
|
if (this.Canvas.addEventListener) {
|
|
this.Canvas.addEventListener("DOMMouseScroll", this.onMouseWhell, false);
|
|
}
|
|
this.DemonstrationDiv.appendChild(this.Canvas);
|
|
this.IsPlayMode = true;
|
|
if (false === is_play_mode) {
|
|
this.IsPlayMode = false;
|
|
}
|
|
this.SlideIndexes[0] = -1;
|
|
this.SlideIndexes[1] = -1;
|
|
this.StartSlide(true, true);
|
|
};
|
|
this.StartSlide = function (is_transition_use, is_first_play) {
|
|
oThis.StopTransition();
|
|
if (oThis.SlideNum == oThis.SlidesCount) {
|
|
if (null == oThis.DivEndPresentation) {
|
|
oThis.DivEndPresentation = document.createElement("div");
|
|
oThis.DivEndPresentation.setAttribute("style", "position:absolute;margin:0px;padding:0px;left:0px;top:0px;width:100%;height:100%;z-index:4;background-color:#000000;text-align:center;font-family:monospace;font-size:12pt;color:#FFFFFF;");
|
|
oThis.DivEndPresentation.innerHTML = oThis.EndShowMessage;
|
|
oThis.DivEndPresentation.onmouseup = oThis.onMouseUp;
|
|
oThis.DivEndPresentation.onmousewheel = oThis.onMouseWhell;
|
|
if (oThis.DivEndPresentation.addEventListener) {
|
|
oThis.DivEndPresentation.addEventListener("DOMMouseScroll", oThis.onMouseWhell, false);
|
|
}
|
|
oThis.DemonstrationDiv.appendChild(oThis.DivEndPresentation);
|
|
}
|
|
return;
|
|
} else {
|
|
if (null != oThis.DivEndPresentation) {
|
|
this.DemonstrationDiv.removeChild(this.DivEndPresentation);
|
|
this.DivEndPresentation = null;
|
|
}
|
|
}
|
|
var _slides = oThis.HtmlPage.m_oLogicDocument.Slides;
|
|
var _timing = null;
|
|
if (is_transition_use) {
|
|
_timing = _slides[oThis.SlideNum].timing;
|
|
if (_timing.TransitionType != c_oAscSlideTransitionTypes.None && _timing.TransitionDuration > 0) {
|
|
oThis.StartTransition(_timing, is_first_play, false);
|
|
return;
|
|
}
|
|
}
|
|
oThis.OnPaintSlide(false);
|
|
};
|
|
this.StartSlideBackward = function () {
|
|
var _is_transition = oThis.Transition.IsPlaying();
|
|
oThis.StopTransition();
|
|
if (oThis.SlideNum == oThis.SlidesCount) {
|
|
oThis.SlideNum--;
|
|
oThis.OnPaintSlide(false);
|
|
if (null != oThis.DivEndPresentation) {
|
|
oThis.DemonstrationDiv.removeChild(oThis.DivEndPresentation);
|
|
oThis.DivEndPresentation = null;
|
|
}
|
|
return;
|
|
}
|
|
if (0 >= this.SlideNum) {
|
|
this.SlideNum = 0;
|
|
return;
|
|
}
|
|
var _slides = oThis.HtmlPage.m_oLogicDocument.Slides;
|
|
var _timing = _slides[oThis.SlideNum].timing;
|
|
if (!_is_transition && (_timing.TransitionType != c_oAscSlideTransitionTypes.None && _timing.TransitionDuration > 0)) {
|
|
oThis.StartTransition(_timing, false, true);
|
|
return;
|
|
}
|
|
if (!_is_transition) {
|
|
oThis.SlideNum--;
|
|
}
|
|
oThis.OnPaintSlide(false);
|
|
};
|
|
this.StopTransition = function () {
|
|
if (oThis.Transition.TimerId) {
|
|
oThis.Transition.End(true);
|
|
}
|
|
if (-1 != this.CheckSlideDuration) {
|
|
clearTimeout(this.CheckSlideDuration);
|
|
}
|
|
this.CheckSlideDuration = -1;
|
|
};
|
|
this.StartTransition = function (_timing, is_first, is_backward) {
|
|
if (null == oThis.Overlay) {
|
|
oThis.Overlay = document.createElement("canvas");
|
|
oThis.Overlay.setAttribute("style", "position:absolute;margin:0;padding:0;left:0px;top:0px;width:100%;height:100%;zIndex:3;");
|
|
oThis.Overlay.width = oThis.Canvas.width;
|
|
oThis.Overlay.height = oThis.Canvas.height;
|
|
oThis.Overlay.onmouseup = oThis.onMouseUp;
|
|
oThis.Overlay.onmousewheel = oThis.onMouseWhell;
|
|
if (oThis.Overlay.addEventListener) {
|
|
oThis.Overlay.addEventListener("DOMMouseScroll", oThis.onMouseWhell, false);
|
|
}
|
|
this.DemonstrationDiv.appendChild(oThis.Overlay);
|
|
}
|
|
oThis.Transition.Type = _timing.TransitionType;
|
|
oThis.Transition.Param = _timing.TransitionOption;
|
|
oThis.Transition.Duration = _timing.TransitionDuration;
|
|
oThis.PrepareTransition(is_first, is_backward);
|
|
oThis.Transition.Start(false);
|
|
};
|
|
this.OnEndTransition = function (bIsAttack) {
|
|
if (oThis.Transition.IsBackward) {
|
|
oThis.SlideNum--;
|
|
oThis.HtmlPage.m_oApi.sync_DemonstrationSlideChanged(oThis.SlideNum);
|
|
}
|
|
this.OnPaintSlide(true);
|
|
};
|
|
this.OnPaintSlide = function (is_clear_overlay) {
|
|
if (is_clear_overlay && oThis.Overlay) {
|
|
var _ctx2 = oThis.Overlay.getContext("2d");
|
|
_ctx2.clearRect(oThis.Transition.Rect.x, oThis.Transition.Rect.y, oThis.Transition.Rect.w, oThis.Transition.Rect.h);
|
|
}
|
|
oThis.Transition.CalculateRectDemonstration();
|
|
oThis.PrepareSlide();
|
|
var _ctx1 = oThis.Canvas.getContext("2d");
|
|
var _image = null;
|
|
if (0 == oThis.SlideImage) {
|
|
_image = oThis.SlideImages[0].Image.image;
|
|
} else {
|
|
if (1 == oThis.SlideImage) {
|
|
_image = oThis.SlideImages[1].Image.image;
|
|
}
|
|
}
|
|
if (null != _image) {
|
|
_ctx1.drawImage(_image, oThis.Transition.Rect.x, oThis.Transition.Rect.y, oThis.Transition.Rect.w, oThis.Transition.Rect.h);
|
|
}
|
|
var _slides = oThis.HtmlPage.m_oLogicDocument.Slides;
|
|
var _timing = _slides[oThis.SlideNum].timing;
|
|
if (_timing.SlideAdvanceAfter === true) {
|
|
oThis.CheckSlideDuration = setTimeout(function () {
|
|
if (oThis.IsPlayMode) {
|
|
oThis.SlideNum++;
|
|
oThis.HtmlPage.m_oApi.sync_DemonstrationSlideChanged(oThis.SlideNum);
|
|
oThis.StartSlide(true, false);
|
|
}
|
|
},
|
|
_timing.SlideAdvanceDuration);
|
|
}
|
|
};
|
|
this.End = function () {
|
|
if (!this.Mode) {
|
|
return;
|
|
}
|
|
this.StopTransition();
|
|
if (null != this.DivEndPresentation) {
|
|
this.DemonstrationDiv.removeChild(this.DivEndPresentation);
|
|
this.DivEndPresentation = null;
|
|
}
|
|
if (null != this.Overlay) {
|
|
this.DemonstrationDiv.removeChild(this.Overlay);
|
|
this.Overlay = null;
|
|
}
|
|
this.DemonstrationDiv.removeChild(this.Canvas);
|
|
this.Canvas = null;
|
|
this.SlideNum = -1;
|
|
this.DemonstrationDiv = null;
|
|
this.Mode = false;
|
|
var ctx1 = this.HtmlPage.m_oEditor.HtmlElement.getContext("2d");
|
|
ctx1.setTransform(1, 0, 0, 1, 0, 0);
|
|
this.HtmlPage.m_oApi.sync_endDemonstration();
|
|
};
|
|
this.NextSlide = function () {
|
|
if (!this.Mode) {
|
|
return;
|
|
}
|
|
var _is_transition = this.Transition.IsPlaying();
|
|
if (!_is_transition) {
|
|
this.SlideNum++;
|
|
}
|
|
if (this.SlideNum > this.SlidesCount) {
|
|
this.End();
|
|
} else {
|
|
this.HtmlPage.m_oApi.sync_DemonstrationSlideChanged(this.SlideNum);
|
|
this.StartSlide(!_is_transition, false);
|
|
}
|
|
};
|
|
this.PrevSlide = function () {
|
|
if (!this.Mode) {
|
|
return;
|
|
}
|
|
if (0 != this.SlideNum) {
|
|
this.StartSlideBackward();
|
|
this.HtmlPage.m_oApi.sync_DemonstrationSlideChanged(this.SlideNum);
|
|
}
|
|
};
|
|
this.GoToSlide = function (slideNum) {
|
|
if (!this.Mode) {
|
|
return;
|
|
}
|
|
if ((slideNum == this.SlideNum) || (slideNum < 0) || (slideNum >= this.SlidesCount)) {
|
|
return;
|
|
}
|
|
this.SlideNum = slideNum;
|
|
this.HtmlPage.m_oApi.sync_DemonstrationSlideChanged(this.SlideNum);
|
|
this.StartSlide(true, false);
|
|
};
|
|
this.Play = function () {
|
|
this.IsPlayMode = true;
|
|
};
|
|
this.Pause = function () {
|
|
this.IsPlayMode = false;
|
|
};
|
|
this.onKeyDown = function (e) {
|
|
check_KeyboardEvent(e);
|
|
switch (global_keyboardEvent.KeyCode) {
|
|
case 13:
|
|
case 32:
|
|
case 34:
|
|
case 39:
|
|
case 40:
|
|
oThis.NextSlide();
|
|
break;
|
|
case 33:
|
|
case 37:
|
|
case 38:
|
|
oThis.PrevSlide();
|
|
break;
|
|
case 36:
|
|
oThis.GoToSlide(0);
|
|
break;
|
|
case 35:
|
|
oThis.GoToSlide(this.SlidesCount - 1);
|
|
break;
|
|
case 27:
|
|
oThis.End();
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
oThis.HtmlPage.IsKeyDownButNoPress = true;
|
|
return false;
|
|
};
|
|
this.onMouseDown = function (e) {
|
|
e.preventDefault();
|
|
return false;
|
|
};
|
|
this.onMouseMove = function (e) {
|
|
e.preventDefault();
|
|
return false;
|
|
};
|
|
this.onMouseUp = function (e) {
|
|
var _is_transition = oThis.Transition.IsPlaying();
|
|
if (_is_transition) {
|
|
oThis.NextSlide();
|
|
} else {
|
|
if (oThis.SlideNum < 0 || oThis.SlideNum >= oThis.SlidesCount) {
|
|
oThis.NextSlide();
|
|
} else {
|
|
var _slides = oThis.HtmlPage.m_oLogicDocument.Slides;
|
|
var _timing = _slides[oThis.SlideNum].timing;
|
|
if (_timing.SlideAdvanceOnMouseClick === true) {
|
|
oThis.NextSlide();
|
|
}
|
|
}
|
|
}
|
|
e.preventDefault();
|
|
return false;
|
|
};
|
|
this.onMouseWhell = function (e) {
|
|
var delta = 0;
|
|
if (undefined != e.wheelDelta) {
|
|
delta = (e.wheelDelta > 0) ? -1 : 1;
|
|
} else {
|
|
delta = (e.detail > 0) ? 1 : -1;
|
|
}
|
|
if (delta > 0) {
|
|
oThis.NextSlide();
|
|
} else {
|
|
oThis.PrevSlide();
|
|
}
|
|
e.preventDefault();
|
|
return false;
|
|
};
|
|
this.Resize = function () {
|
|
if (!this.Mode) {
|
|
return;
|
|
}
|
|
var _width = this.DemonstrationDiv.clientWidth;
|
|
var _height = this.DemonstrationDiv.clientHeight;
|
|
if (_width == this.DivWidth && _height == this.DivHeight) {
|
|
return;
|
|
}
|
|
this.DivWidth = _width;
|
|
this.DivHeight = _height;
|
|
this.Canvas.width = _width;
|
|
this.Canvas.height = _height;
|
|
this.Transition.CalculateRectDemonstration();
|
|
this.SlideIndexes[0] = -1;
|
|
this.SlideIndexes[1] = -1;
|
|
if (this.Overlay) {
|
|
this.Overlay.width = this.Canvas.width;
|
|
this.Overlay.height = this.Canvas.height;
|
|
}
|
|
if (this.SlideNum < this.SlidesCount) {
|
|
this.StartSlide(false, false);
|
|
}
|
|
};
|
|
} |