Commit 975bb308 authored by Anna.Pavlova's avatar Anna.Pavlova Committed by Alexander.Trofimov

1. Поправила баг при сравнении на быстром пересчете некорректно повторно...

1. Поправила баг при сравнении на быстром пересчете некорректно повторно рассчитывалась максимальная ширина форммулы на странице(при первом пересчете все операторы имеют Gaps, при поседующем у крайних операторов их нет)
2.  Добавила сравнение на выход за граница формулы для быстрого пересчете (в случае если до быстрого пересчета и после формула выходит за границы не нужно пересчитывать выравнивание и соответственно роверять на изменение максимальной ширины формулы на странице)
3. Добавила флаги состояний Gaps bEmptyGapLeft и bEmptyGapRight (необходимы для крайних элементов, если true, то Gaps отсутствует у соответствующего элемента), пока только для операторов

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@62812 954022d7-b5bf-4e40-9824-e11837661b57
parent a121f9d4
......@@ -301,8 +301,8 @@ function CMathInfo()
this.FirstLineOnPage = -1;
this.WrapState = ALIGN_EMPTY;
this.LineWidths = new CParaMathLineWidths();
this.NeedUpdateWrap = true;
this.bWordLarge = false;
this.NeedUpdateWrap = true;
}
CMathInfo.prototype.GetFirstLineOnPage = function()
{
......@@ -368,12 +368,21 @@ CMathPageInfo.prototype.SetNextWrapState = function()
if(InfoPage.WrapState !== ALIGN_EMPTY)
InfoPage.WrapState++;
};
CMathPageInfo.prototype.SetStateWordLarge = function(bWordLarge)
{
this.private_CheckInfo(this.CurPage);
this.Info[this.CurPage].bWordLarge = bWordLarge;
};
CMathPageInfo.prototype.GetWrap = function(_Page)
{
var Page = _Page - this.StartPage;
return this.Info[Page].WrapState;
};
CMathPageInfo.prototype.GetCurrentStateWordLarge = function()
{
return this.Info[this.CurPage].bWordLarge;
};
CMathPageInfo.prototype.IsFirstPage = function(_Page)
{
return _Page - this.StartPage == 0;
......@@ -384,6 +393,8 @@ CMathPageInfo.prototype.GetStarLinetWidth = function()
};
CMathPageInfo.prototype.UpdateCurrentWidth = function(_Line, Width)
{
this.private_CheckInfo(this.CurPage);
var Line = _Line - this.StartLine - this.Info[this.CurPage].FirstLineOnPage;
return this.Info[this.CurPage].LineWidths.UpdateWidth(Line, Width);
......@@ -465,19 +476,18 @@ function ParaMath()
this.FirstPage = -1;
this.PageInfo = new CMathPageInfo();
this.ParaMathRPI = new CMathRecalculateInfo();
this.bSelectionUse = false;
this.Paragraph = null;
this.ParaMathRPI = new CMathRecalculateInfo();
this.NearPosArray = [];
this.bSelectionUse = false;
this.Paragraph = null;
this.Width = 0;
this.WidthVisible = 0;
this.Height = 0;
this.Ascent = 0;
this.Descent = 0;
this.NearPosArray = [];
this.Width = 0;
this.WidthVisible = 0;
this.Height = 0;
this.Ascent = 0;
this.Descent = 0;
this.DefaultTextPr = new CTextPr();
......@@ -1061,6 +1071,7 @@ ParaMath.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
// Paragraph.js
// CRunRecalculateObject.Compare
if ( this.Paragraph !== PRS.Paragraph )
{
this.Paragraph = PRS.Paragraph;
......@@ -1125,7 +1136,6 @@ ParaMath.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
if(bStartLine == false)
{
PRS.X += WrapIndent;
//PRS.bCompareWrapIndent = false;
}
else
{
......@@ -1140,8 +1150,6 @@ ParaMath.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
PRS.PrevLineRecalcInfo.Object = null;
}
//console.log("Line " + PRS.Line);
this.Root.Recalculate_Range(PRS, ParaPr, Depth);
if(PRS.NewRange == false)
......@@ -1159,6 +1167,11 @@ ParaMath.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
this.UpdateWidthLine(PRS, WidthLine);
}
if(PRS.X + PRS.SpaceLen + PRS.WordLen > PRS.XEnd && WrapState == ALIGN_EMPTY)
{
this.PageInfo.SetStateWordLarge(true);
}
if(PRS.bMathWordLarge == true && WrapState !== ALIGN_EMPTY)
{
this.UpdateInfoForBreak(PRS);
......@@ -1180,7 +1193,7 @@ ParaMath.prototype.UpdateInfoForBreak = function(PRS)
ParaMath.prototype.Save_MathInfo = function(Copy)
{
var RecalculateObject = new CMathRecalculateObject();
RecalculateObject.Fill(this.PageInfo);
RecalculateObject.Fill(this.PageInfo, this.ParaMathRPI.bInline, this.Get_Align());
return RecalculateObject;
};
......@@ -1209,7 +1222,12 @@ ParaMath.prototype.Recalculate_Range_Width = function(PRSC, _CurLine, _CurRange)
{
var SpaceLen = PRSC.SpaceLen;
this.Root.UpdateOperators(_CurLine, _CurRange);
var bBrkBefore = this.Is_BrkBinBefore();
var bGapLeft = bBrkBefore == true,
bGapRight = bBrkBefore == false;
this.Root.UpdateOperators(_CurLine, _CurRange, bGapLeft, bGapRight);
this.Root.Recalculate_Range_Width(PRSC, _CurLine, _CurRange);
......@@ -3188,13 +3206,21 @@ CMathRecalculateInfo.prototype.ClearRecalculate = function()
function CMathRecalculateObject()
{
this.WrapState = ALIGN_EMPTY;
this.MaxW = 0;
this.WrapState = ALIGN_EMPTY;
this.MaxW = 0;
this.bWordLarge = false;
this.bInline = false;
this.align = align_Justify;
}
CMathRecalculateObject.prototype.Fill = function(PageInfo)
CMathRecalculateObject.prototype.Fill = function(PageInfo, bInline, align)
{
this.WrapState = PageInfo.GetCurrentWrapState();
this.MaxW = PageInfo.GetCurrentMaxWidthAllLines();
this.WrapState = PageInfo.GetCurrentWrapState();
this.MaxW = PageInfo.GetCurrentMaxWidthAllLines();
this.bWordLarge = PageInfo.GetCurrentStateWordLarge();
this.bInline = bInline;
this.align = align;
};
CMathRecalculateObject.prototype.Load_MathInfo = function(PageInfo)
{
......@@ -3210,7 +3236,14 @@ CMathRecalculateObject.prototype.Compare = function(PageInfo)
if(this.WrapState !== PageInfo.GetCurrentWrapState())
result = false;
if(this.MaxW !== PageInfo.GetCurrentMaxWidthAllLines())
var DiffMaxW = this.MaxW - PageInfo.GetCurrentMaxWidthAllLines();
if(DiffMaxW < 0)
DiffMaxW = -DiffMaxW;
var LargeComposition = this.bWordLarge == true && true == PageInfo.GetCurrentStateWordLarge();
if(LargeComposition == false && this.bInline == false && this.align == align_Justify && DiffMaxW > 0.001)
result = false;
return result;
......
......@@ -13353,7 +13353,6 @@ function CRunRecalculateObject(StartLine, StartRange)
this.Content = [];
this.MathInfo = null;
//this.WrapState = ALIGN_EMPTY;
}
CRunRecalculateObject.prototype =
......@@ -13386,8 +13385,6 @@ CRunRecalculateObject.prototype =
Save_MathInfo: function(Obj, Copy)
{
this.MathInfo = Obj.Save_MathInfo(Copy);
//this.WrapState = Obj.GetCurrentWrapState();
},
Load_Lines : function(Obj)
......
......@@ -2310,10 +2310,10 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
{
bOverXEnd = X + WordLen + SpaceLen > XEnd;
if(Word == false) // слово только началось
/*if(Word == false) // слово только началось
{
OperGapLeft = Item.GapLeft;
}
}*/
if(bOverXEnd && FirstItemOnLine == false) // Слово не убирается в отрезке. Переносим слово в следующий отрезок
{
......@@ -2346,7 +2346,9 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
// FirstItemOnLine == true && Word == false
// первое слово в строке
if(FirstItemOnLine == true)
SpaceLen += BrkLen - OperGapLeft;
{
SpaceLen += BrkLen - Item.GapLeft;
}
}
}
}
......@@ -2925,7 +2927,7 @@ ParaRun.prototype.Recalculate_Range_Width = function(PRSC, _CurLine, _CurRange)
{
PRSC.Letters++;
PRSC.Range.W += Item.Get_Width2() / TEXTWIDTH_DIVIDER;
PRSC.Range.W += Item.Get_Width() / TEXTWIDTH_DIVIDER; // Get_Width рассчитываем ширину с учетом состояний Gaps
break;
}
case para_Space:
......@@ -3063,7 +3065,7 @@ ParaRun.prototype.Recalculate_Range_Spaces = function(PRSA, _CurLine, _CurRange,
case para_Math_BreakOperator:
case para_Math_Ampersand:
{
var WidthVisible = Item.Get_Width2() / TEXTWIDTH_DIVIDER;
var WidthVisible = Item.Get_Width() / TEXTWIDTH_DIVIDER; // Get_Width рассчитываем ширину с учетом состояний Gaps
Item.WidthVisible = (WidthVisible * TEXTWIDTH_DIVIDER)| 0;//Item.Set_WidthVisible(WidthVisible);
PRSA.X += WidthVisible;
......@@ -8600,7 +8602,8 @@ ParaRun.prototype.Math_SetPosition = function(pos, PRSA, Line, Range, Page)
for(var i = StartPos; i < EndPos; i++)
{
this.Content[i].setPosition(pos);
pos.x += this.Content[i].Get_Width();
pos.x += this.Content[i].Get_WidthVisible(); // Get_Width => Get_WidthVisible
// Get_WidthVisible - Width + Gaps с учетом настроек состояния
}
};
ParaRun.prototype.Math_GetWidth = function(_CurLine, _CurRange)
......@@ -8614,7 +8617,8 @@ ParaRun.prototype.Math_GetWidth = function(_CurLine, _CurRange)
var W = 0;
for(var i = StartPos; i < EndPos; i++)
{
W += this.Content[i].Get_Width();
W += this.Content[i].Get_WidthVisible(); // Get_Width => Get_WidthVisible
// Get_WidthVisible - Width + Gaps с учетом настроек состояния
}
return W;
......@@ -8717,7 +8721,8 @@ ParaRun.prototype.Recalculate_Range_OneLine = function(PRS, ParaPr, Depth)
var size = this.Content[i].size,
Type = this.Content[i].Type;
var WidthItem = this.Content[i].Get_Width();
var WidthItem = this.Content[i].Get_WidthVisible(); // Get_Width => Get_WidthVisible
// Get_WidthVisible - Width + Gaps с учетом настроек состояния
width += WidthItem;
......@@ -8743,7 +8748,8 @@ ParaRun.prototype.Recalculate_Range_OneLine = function(PRS, ParaPr, Depth)
this.protected_FillRange(CurLine, CurRange, RangeStartPos, RangeEndPos);
};
ParaRun.prototype.UpdateOperators = function(_CurLine, _CurRange)
// в этой функции проставляем состояние Gaps (крайние или нет) для всех операторов, к-ые участвуют в разбиении, чтобы не получилось случайно, что при изменении разбивки формулы на строки произошло, что у оператора не будет проставлен Gap
ParaRun.prototype.UpdateOperators = function(_CurLine, _CurRange, bEmptyGapLeft, bEmptyGapRight)
{
var CurLine = _CurLine - this.StartLine;
var CurRange = ( 0 === CurLine ? _CurRange - this.StartRange : _CurRange );
......@@ -8751,25 +8757,14 @@ ParaRun.prototype.UpdateOperators = function(_CurLine, _CurRange)
var StartPos = this.protected_GetRangeStartPos(CurLine, CurRange);
var EndPos = this.protected_GetRangeEndPos(CurLine, CurRange);
var result = true;
if(StartPos == EndPos)
for(var Pos = StartPos; Pos < EndPos; Pos++)
{
result = false;
}
else
{
if(this.ParaMath.Is_BrkBinBefore() == true)
{
this.Content[StartPos].Update_GapLeft(0);
}
else
{
this.Content[EndPos-1].Update_GapRight(0);
}
}
var _bEmptyGapLeft = bEmptyGapLeft && Pos == StartPos,
_bEmptyGapRight = bEmptyGapRight && Pos == EndPos - 1;
return result;
this.Content[Pos].Update_StateGapLeft(_bEmptyGapLeft);
this.Content[Pos].Update_StateGapRight(_bEmptyGapRight);
}
};
ParaRun.prototype.Math_Apply_Style = function(Value)
{
......@@ -8939,7 +8934,8 @@ ParaRun.prototype.ApplyPoints = function(PointsInfo)
this.Content[Pos].size.width = PointsInfo.GetAlign();
}
this.size.width += this.Content[Pos].Get_Width();
this.size.width += this.Content[Pos].Get_WidthVisible(); // Get_Width => Get_WidthVisible
// Get_WidthVisible - Width + Gaps с учетом настроек состояния
}
}
};
......
......@@ -2047,34 +2047,14 @@ CMathBase.prototype.Recalculate_Range_Width = function(PRSC, _CurLine, _CurRange
this.Bounds.SetWidth(CurLine, PRSC.Range.W - RangeW);
};
CMathBase.prototype.UpdateOperators = function(_CurLine, _CurRange)
CMathBase.prototype.UpdateOperators = function(_CurLine, _CurRange, bEmptyGapLeft, bEmptyGapRight)
{
var CurLine = _CurLine - this.StartLine;
var CurRange = ( 0 === CurLine ? _CurRange - this.StartRange : _CurRange );
if(this.bOneLine == true)
{
result = true;
}
else
if(this.bOneLine == false)
{
var StartPos = this.protected_GetRangeStartPos(CurLine, CurRange);
var EndPos = this.protected_GetRangeEndPos(CurLine, CurRange);
var result = true;
if(this.ParaMath.Is_BrkBinBefore() == true)
{
result = this.Content[StartPos].UpdateOperators(_CurLine, _CurRange);
}
else
{
result = this.Content[EndPos].UpdateOperators(_CurLine, _CurRange);
}
// Content[this.NumBreakContent] должен содержаться в каждой строке многострочного объекта
this.Content[this.NumBreakContent].UpdateOperators(_CurLine, _CurRange, bEmptyGapLeft, bEmptyGapRight);
}
return result;
};
CMathBase.prototype.Is_EmptyRange = function()
{
......
......@@ -528,7 +528,9 @@ CBox.prototype.Update_WordLen = function(PRS, WordLen)
{
PRS.WordLen = WordLen;
};
CBox.prototype.UpdateOperators = function(_CurLine, _CurRange)
// TO DO передела в base.js
CBox.prototype.UpdateOperators____2 = function(_CurLine, _CurRange)
{
if(true == this.ParaMath.Is_BrkBinBefore())
{
......
......@@ -3940,10 +3940,10 @@ CMathContent.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
}
else // контент может занимать несколько строк
{
var FirstItemOnLine = PRS.FirstItemOnLine,
Word = PRS.Word;
var bNoOneBreakOperator = PRS.bNoOneBreakOperator;
var W_Before = PRS.WordLen + PRS.SpaceLen + PRS.X;
Item.Recalculate_Range(PRS, ParaPr, Depth + 1);
if(Type == para_Math_Composition)
......@@ -4149,7 +4149,7 @@ CMathContent.prototype.Recalculate_LineMetrics = function(PRS, ParaPr, _CurLine,
ContentMetrics.UpdateMetrics(NewContentMetrics);
};
CMathContent.prototype.UpdateOperators = function(_CurLine, _CurRange)
CMathContent.prototype.UpdateOperators = function(_CurLine, _CurRange, bEmptyGapLeft, bEmptyGapRight)
{
var CurLine = _CurLine - this.StartLine;
var CurRange = ( 0 === CurLine ? _CurRange - this.StartRange : _CurRange );
......@@ -4157,27 +4157,13 @@ CMathContent.prototype.UpdateOperators = function(_CurLine, _CurRange)
var StartPos = this.protected_GetRangeStartPos(CurLine, CurRange);
var EndPos = this.protected_GetRangeEndPos(CurLine, CurRange);
var result = false;
if(this.ParaMath.Is_BrkBinBefore() == true)
{
while(StartPos <= EndPos && result == false)
{
result = this.Content[StartPos].UpdateOperators(_CurLine, _CurRange);
StartPos++;
}
}
else
for(var Pos = StartPos; Pos <= EndPos; Pos++)
{
while(StartPos <= EndPos && result == false)
{
result = this.Content[EndPos].UpdateOperators(_CurLine, _CurRange);
EndPos--;
}
}
return result;
var _bEmptyGapLeft = bEmptyGapLeft && Pos == StartPos,
_bEmptyGapRight = bEmptyGapRight && Pos == EndPos;
this.Content[Pos].UpdateOperators(_CurLine, _CurRange, _bEmptyGapLeft, _bEmptyGapRight);
}
};
CMathContent.prototype.Get_Bounds = function()
{
......
......@@ -40,15 +40,12 @@ CMathSize.prototype.Set = function(size)
function CMathText(bJDraw)
{
// для Para_Run
this.Type = para_Math_Text;
this.bJDraw = (undefined === bJDraw ? false : bJDraw);
this.value = null;
this.Type = para_Math_Text;
this.bJDraw = (undefined === bJDraw ? false : bJDraw);
this.value = null;
this.RecalcInfo =
{
//NewLetter: true,
StyleCode: null,
bAccentIJ: false,
bSpaceSpecial: false,
......@@ -56,20 +53,23 @@ function CMathText(bJDraw)
bSpecialOperator: false
};
this.ParaMath = null;
this.Flags = 0;
this.Parent = null;
this.size = new CMathSize();
this.Width = 0; // для Recalculate_Range
this.bEmptyGapLeft = false;
this.bEmptyGapRight = false;
this.pos = new CMathPosition();
this.ParaMath = null;
this.Flags = 0;
this.Parent = null;
this.size = new CMathSize();
this.Width = 0; // для Recalculate_Range
this.pos = new CMathPosition();
this.rasterOffsetX = 0;
this.rasterOffsetY = 0;
this.GapLeft = 0;
this.GapRight = 0;
this.rasterOffsetX = 0;
this.rasterOffsetY = 0;
this.GapLeft = 0;
this.GapRight = 0;
this.FontSlot = fontslot_ASCII;
this.FontSlot = fontslot_ASCII;
// TO DO
// убрать
......@@ -655,7 +655,15 @@ CMathText.prototype =
},
Get_Width: function() // работаем через функцию, т.к. поля GapLeft и GapRight могут измениться из-за изменения переноса, а пересчет (Measure) в этом случае не прийдет
{
return this.size.width + this.GapLeft + this.GapRight;
var Width = this.size.width;
if(this.bEmptyGapLeft == false)
Width += this.GapLeft;
if(this.bEmptyGapRight == false)
Width += this.GapRight;
return (Width*TEXTWIDTH_DIVIDER) | 0;
},
Get_Width2: function() // работаем через функцию, т.к. поля GapLeft и GapRight могут измениться из-за изменения переноса, а пересчет (Measure) в этом случае не прийдет
{
......@@ -663,21 +671,23 @@ CMathText.prototype =
},
Get_WidthVisible: function()
{
return this.size.width + this.GapLeft + this.GapRight;
var Width = this.size.width;
if(this.bEmptyGapLeft == false)
Width += this.GapLeft;
if(this.bEmptyGapRight == false)
Width += this.GapRight;
return Width;
},
Update_GapLeft: function(Gap)
Update_StateGapLeft: function(bState)
{
this.GapLeft = Gap;
//this.size.width = this.MeasureWidth + this.GapRight + this.GapLeft;
//this.Width = (this.size.width * TEXTWIDTH_DIVIDER) | 0;
this.bEmptyGapLeft = bState;
},
Update_GapRight: function(Gap)
Update_StateGapRight: function(bState)
{
this.GapRight = Gap;
//this.size.width = this.MeasureWidth + this.GapRight + this.GapLeft;
//this.Width = (this.size.width * TEXTWIDTH_DIVIDER) | 0;
this.bEmptyGapRight = bState;
},
Draw_Elements: function(PDSE)
{
......@@ -686,9 +696,14 @@ CMathText.prototype =
},
Draw: function(x, y, pGraphics, InfoTextPr)
{
var X = this.pos.x + x + this.GapLeft,
var X = this.pos.x + x,
Y = this.pos.y + y;
if(this.bEmptyGapLeft == false)
X += this.GapLeft;
/*var tx = 0;
var ty = 0;
......
......@@ -567,28 +567,6 @@ CNary.prototype.Recalculate_Range_Width = function(PRSC, _CurLine, _CurRange)
this.Bounds.SetWidth(CurLine, PRSC.Range.W - RangeW);
}
};
CNary.prototype.UpdateOperators = function(_CurLine, _CurRange)
{
/*var CurLine = _CurLine - this.StartLine;
var CurRange = ( 0 === CurLine ? _CurRange - this.StartRange : _CurRange );
var StartPos = this.protected_GetRangeStartPos(CurLine, CurRange);
var EndPos = this.protected_GetRangeEndPos(CurLine, CurRange);*/
var result = true;
if(this.ParaMath.Is_BrkBinBefore() == true)
{
result = this.Arg.UpdateOperators(_CurLine, _CurRange);
}
else
{
result = this.Arg.UpdateOperators(_CurLine, _CurRange);
}
return result;
};
CNary.prototype.Draw_Elements = function(PDSE)
{
var CurLine = PDSE.Line - this.StartLine;
......@@ -1619,13 +1597,6 @@ CIntegral.prototype.getCoord = function()
X[44] = X[0]; Y[44] = Y[0];
X[43] = (X[42] + X[44])/2; Y[43] = (Y[44] + Y[42])/2;
/*for(var i = 0; i < X.length; i++)
{
var k = i + 34;
var str = "X[" + k + "] = " + X[i] + "; Y[" + k + "] = " + Y[i] + ";";
console.log(str);
}*/
var W = X[9],
H = Y[27];
......@@ -1819,14 +1790,6 @@ CCircle.prototype.getCoord = function()
X[32] = 11930.6; Y[32] = 407.15;
X[33] = 18345.98; Y[33] = 0;
/*
for(var i = 0; i < 34; i++)
{
var str = "X[" + i + "] = " + Math.round(X[i]*85)/100 + "; Y[" + i + "] = " + Math.round(Y[i]*85)/100 + ";";
console.log(str);
}*/
var W = X[7],
H = Y[16];
......@@ -1912,33 +1875,10 @@ CSurface.prototype.getCoord = function()
X[41] = 21192.77; Y[41] = 841.7;
X[42] = 24855.55; Y[42] = 312.82;
/*var t = Y[1];
for(var i = 0 ; i < X.length; i++)
{
var yy = Math.round((Y[i] - t)*100)/100;
var str = "X[" + i + "] = " + X[i] + "; Y[" + i + "] = " + yy + ";";
console.log(str);
}*/
var W = X[11],
H = Y[21];
/*for(var i = 0; i < X.length; i++)
{
X[i] *= 1.03;
Y[i] *= 0.97;
var xx = Math.round(X[i]*100)/100;
var yy = Math.round(Y[i]*100)/100;
var str = "X[" + i + "] = " + xx + "; Y[" + i + "] = " + yy + ";";
console.log(str);
}*/
return {X: X, Y: Y, W: W, H: H};
};
......@@ -2032,37 +1972,6 @@ CVolume.prototype.getCoord = function()
X[49] = 18795; Y[49] = 2963.07;
X[50] = 24086.6; Y[50] = 1584.99;
/*var min_y = 23530,
ind_y;
for(var i = 0; i < X.length; i++)
{
if(Y[i] < min_y)
{
ind_y = i;
min_y = Y[i];
}
}
for(var i = 0; i < 51; i++)
{
X[i] *= 1.074;
Y[i] *= 0.99;
}
var t = Y[ind_y];
for(var i = 0; i < 51; i++)
{
var yy = Math.round((Y[i] - t)*100)/100;
var xx = Math.round(X[i]*100)/100;
var str = "X["+i+"] = " + xx + "; Y["+i+ "] = "+ yy + ";";
console.log(str);
}*/
var W = X[15],
H = Y[28];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment