- 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.
        
        
Порядок исполнения такой же как всегда, просто изначально в переменной будет валяться undefined (или я туплю насчет undefined?).
Как-то так...
А вроде бы ещё в ES6 переменные и функции будут жить в своём блоке
Хотя, let в Firefox уже есть.
Блеать... Строковый литерал, висящий в воздухе... Отличный способ для активации нового функционала... Жс не перестает удивлять своими костылями :)
> let в Firefox уже есть
Ну это, конечно, не может не радовать... Вот только юзать его никто не будет, разве что нодовцы. А остальным придется и дальше кушать кактус, пока все браузеры начнут поддерживать ES6 ;)
P.S. Плюс это не совсем новый функционал. Он не добавляет ничего нового, а наоборот, закрывает старые неудачные дизайнерские решения.