importToFlow(xml, ...) issue
package {
import flash.display.Sprite;
import flashx.textLayout.container.ContainerController;
import flashx.textLayout.elements.TextFlow;
import flashx.textLayout.conversion.TextConverter;
public class Test extends Sprite
{
public function Test()
{
init();
}
private function init():void{
var markup1:XML = <TextFlow xmlns='http://ns.adobe.com/textLayout/2008'>
<p fontSize="30" color="666666">
<span>What a</span><br/>
<span color='#5da325'>wonderful</span>
<span>text (1)!</span>
</p>
</TextFlow>;
creatTextFlow(markup1);
var markup2:XML = <p fontSize="30" color="666666">
<span>What a</span><br/>
<span color='#5da325'>wonderful</span>
<span>text (2)!</span>
</p>;
text = markup2;
}
private function set text(tempXML:XML):void{
var finalXML:XML = <TextFlow xmlns='http://ns.adobe.com/textLayout/2008'/>;
finalXML.appendChild(tempXML);
creatTextFlow(finalXML, 150);
}
private function creatTextFlow(xml:XML, cY:Number = 0):void{
trace(xml);
// trace xml of markup1:
// <TextFlow xmlns="http://ns.adobe.com/textLayout/2008">
// <p fontSize="30" color="666666">
// <span>What a</span>
// <br/>
// <span color="#5da325">wonderful</span>
// <span>text (1)!</span>
// </p>
// </TextFlow>
// trace xml of markup2:
// <TextFlow xmlns="http://ns.adobe.com/textLayout/2008">
// <p fontSize="30" color="666666">
// <span>What a</span>
// <br/>
// <span color="#5da325">wonderful</span>
// <span>text (2)!</span>
// </p>
// </TextFlow>
// MARKUP1 EQUALS MARKUP2 !!!!!!!!!!!
var textFlow:TextFlow = new TextFlow();
// option 1:
// import xml object, works only for markup1, not markup2!
// markup 2 is not visible -----------> WHY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ??? thats my question.
// and the whitespace between the spans in markup1 is not visible
textFlow = TextConverter.importToFlow(xml, TextConverter.TEXT_LAYOUT_FORMAT);
// option 2:
// import xml object as XMLString, works for both, BUT you get an UNREMOVABLE indent of the first 2 textlines.
//textFlow = TextConverter.importToFlow(xml.toXMLString(), TextConverter.TEXT_LAYOUT_FORMAT);
var sprite:Sprite = new Sprite();
var controller:ContainerController = new ContainerController(sprite, 200, 200);
textFlow.flowComposer.addController(controller);
textFlow.flowComposer.updateAllControllers();
addChild(sprite);
sprite.y = cY;
}
}
}
