- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
/**
* @private
* Calculates the height needed for heightInLines lines using the default
* font.
*/
private function calculateHeightInLines():Number
{
var height:Number = getStyle("paddingTop") + getStyle("paddingBottom");
if (_heightInLines == 0)
return height;
var effectiveHeightInLines:int;
// If both height and width are NaN use 10 lines. Otherwise if
// only height is NaN, use 1.
if (isNaN(_heightInLines))
effectiveHeightInLines = isNaN(_widthInChars) ? 10 : 1;
else
effectiveHeightInLines = _heightInLines;
// Position of the baseline of first line in the container.
value = getStyle("firstBaselineOffset");
if (value == lineHeight)
height += lineHeight;
else if (value is Number)
height += Number(value);
else
height += ascent;
// Distance from baseline to baseline. Can be +/- number or
// or +/- percent (in form "120%") or "undefined".
if (effectiveHeightInLines > 1)
{
var value:Object = getStyle("lineHeight");
var lineHeight:Number =
RichEditableText.getNumberOrPercentOf(value, getStyle("fontSize"));
// Default is 120%
if (isNaN(lineHeight))
lineHeight = getStyle("fontSize") * 1.2;
height += (effectiveHeightInLines - 1) * lineHeight;
}
// Add in descent of last line.
height += descent;
return height;
}
Внимательно следим за жизненным циклом переменной lineHeight.
bormand 07.04.2014 12:15 # +2
WGH 07.04.2014 14:46 # +1
bormand 07.04.2014 15:03 # +2
1024-- 07.04.2014 15:06 # +1
TarasB 07.04.2014 14:50 # +1
roman-kashitsyn 07.04.2014 14:53 # +1
WGH 07.04.2014 15:07 # +1
bormand 07.04.2014 14:56 # 0
Порядок исполнения такой же как всегда, просто изначально в переменной будет валяться undefined (или я туплю насчет undefined?).
Как-то так...
WGH 07.04.2014 15:06 # 0
bormand 07.04.2014 15:08 # +1
1024-- 07.04.2014 15:11 # 0
А вроде бы ещё в ES6 переменные и функции будут жить в своём блоке
Хотя, let в Firefox уже есть.
bormand 07.04.2014 15:13 # +3
Блеать... Строковый литерал, висящий в воздухе... Отличный способ для активации нового функционала... Жс не перестает удивлять своими костылями :)
> let в Firefox уже есть
Ну это, конечно, не может не радовать... Вот только юзать его никто не будет, разве что нодовцы. А остальным придется и дальше кушать кактус, пока все браузеры начнут поддерживать ES6 ;)
WGH 07.04.2014 15:18 # +3
P.S. Плюс это не совсем новый функционал. Он не добавляет ничего нового, а наоборот, закрывает старые неудачные дизайнерские решения.
wvxvw 07.04.2014 16:41 # +2
wvxvw 07.04.2014 16:41 # 0
bormand 07.04.2014 17:20 # 0
wvxvw 07.04.2014 17:26 # +1