Мне кажется или ввиду ограничения lineHeight (от -720 до 720) TextFlow не способен отображать картинки высотой более ~720 пикселей в высоту без наезда на рядом стоящие строки?
Поискав в интернете, я в основном нахожу такие
примеры. У человека происходит пересечение, ему рекомендуют увеличить lineHeight, он это делает, и всё у него в порядке становится, и все живут долго и счастливо.
Ограничение на высоту картинки в TextFlow 32000 пикселей, что предполагает, что всё должно быть нормально с высокими картинками. Может просто я чего-то недопонимаю, поэтому надеюсь на вашу помощь. Заранее спасибо.
PS.
Вообще это применительно не только к картинкам, но и большим шрифтам, превышающим по высоте те же ~720 пикселей.
Потестить можно а таком приложении:
Код:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="500" minHeight="600"
creationComplete="creationCompleteHandler(event)">
<s:layout>
<s:HorizontalLayout paddingBottom="10" paddingLeft="10" paddingRight="10" paddingTop="10"/>
</s:layout>
<s:VGroup >
<s:HGroup verticalAlign="middle">
<s:Label text="Line height" maxDisplayedLines="1"/>
<s:NumericStepper id="lineHeight" value="120" change="{updateLineHeight()}" maximum="9999"/>
<s:CheckBox label="%" id="lineHeghtPercent" selected="true" change="{updateLineHeight()}"/>
</s:HGroup>
<s:HGroup verticalAlign="middle">
<s:Label text="Image height" maxDisplayedLines="1"/>
<s:NumericStepper id="imageHeight" value="100" change="{updateImageHeight()}" maximum="9999"/>
</s:HGroup>
</s:VGroup>
<s:TextArea width="100%" height="100%">
<s:textFlow>
<s:TextFlow>
<s:p>
<s:span>First line</s:span>
</s:p>
<s:p>
<s:img id="image" width="100"/>
</s:p>
<s:p>
<s:span>Last line</s:span>
</s:p>
</s:TextFlow>
</s:textFlow>
</s:TextArea>
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
private function updateLineHeight():void
{
try
{
image.lineHeight = lineHeight.value.toString(10).concat(lineHeghtPercent.selected ? "%" : "");
}
catch (error:Error)
{
}
}
private function updateImageHeight():void
{
image.height = imageHeight.value;
}
private function creationCompleteHandler(event:FlexEvent):void
{
var img:Shape = new Shape();
img.graphics.beginFill(0x0000ff);
img.graphics.drawRect(0,0,100,100);
img.graphics.endFill();
image.source = img;
}
]]>
</fx:Script>
</s:Application>