• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
Locked
0

textAlign justify and linkElement problem

New Here ,
Feb 17, 2010 Feb 17, 2010

Copy link to clipboard

Copied

Hi,

I have a paragraph with text and a link.

The link contains a span (backgroundColor = blue, fontWeight=bold) and all properties of each link format (format, linkNormalFormat, linkActiveFormat, linkHoverFormat) inherit from the paragraph format.

I added event listener on the link to manage tooltip.

It works perfectly if paragraph.textAlign = "left" or "right" as shown in attached pictures.

But if I change my code to paragrah.textAlign="justify" (without changing anything else), I obtain a bad result (as shown in attached picture) :

- the backgroundColor on the span doesn't work anymore (but the bold is still working)

- my tooltip event listener doesn't work anymore.

I don't understand why, thanks for your help !

Olivier

PS : I used the build 13875.

TOPICS
Text layout framework

Views

1.7K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
Feb 17, 2010 Feb 17, 2010

Copy link to clipboard

Copied

Hi,

I can't quite duplicate the bug.  Can you send your markup or even better a small actionscript example demonstrating the problem that can be built?  Also does removing the event listener make a difference?  Finally have you tried it with the 10.1 player?

Thanks,

Richard

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 18, 2010 Feb 18, 2010

Copy link to clipboard

Copied

Hi,


Here is the code :

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
   
    <mx:Script>
        <![CDATA[
            import flashx.textLayout.events.FlowElementMouseEvent;
            import flashx.textLayout.elements.LinkElement;
            import flashx.textLayout.formats.TextAlign;
            import flashx.textLayout.elements.SpanElement;
            import flashx.textLayout.elements.ParagraphElement;
            import flashx.textLayout.container.ContainerController;
            import flashx.textLayout.elements.TextFlow;
            import mx.core.UIComponent;
           
            private var textFlow:TextFlow;
           
           
            private function init():void
            {
                var container:UIComponent = new UIComponent();
                container.width = textArea.width - 5;
                container.height = textArea.height - 5;
                textArea.addChild(container);
               
                textFlow = new TextFlow();
                var controller:ContainerController = new ContainerController(container);//, width, height);
                textFlow.flowComposer.addController(controller);
               
                var p:ParagraphElement = new ParagraphElement();
               
                p.textAlign = TextAlign.JUSTIFY;
                               
                textFlow.paragraphStartIndent = 50;
                textFlow.paragraphEndIndent = 50;
               
                textFlow.addChild(p);
               
                var span1:SpanElement = new SpanElement();
                span1.text = "Legal values are numbers from 1 to 720 Legal values are numbers from 1 to 720 ";
                p.addChild(span1);
               
                var link:LinkElement = new LinkElement();
                var linkSpan:SpanElement = new SpanElement();
                linkSpan.text = "a link";
                link.addChild(linkSpan);
                p.addChild(link);
               
                link.addEventListener(FlowElementMouseEvent.ROLL_OVER, function (e:Event):void
                {
                    onoverbtn.visible = true;
                });
               
               
                link.addEventListener(FlowElementMouseEvent.ROLL_OUT, function (e:Event):void
                {
                    onoverbtn.visible = false;
                });
               
                var span2:SpanElement = new SpanElement();
                span2.text = " Legal values are numbers from 1 to 720 Legal values are numbers from 1 to 720 ....";
                p.addChild(span2);
               
                textFlow.flowComposer.getControllerAt(0).setCompositionSize(300,10000);
                textFlow.flowComposer.updateAllControllers();
               
            }
        ]]>
    </mx:Script>
   
    <mx:Button id="onoverbtn" label="on over !!!!" visible="false" fontSize="50"/>
       
    <mx:Canvas id="textArea" backgroundColor="#ffffff" verticalCenter="0" horizontalCenter="0" height="500" width="500"/>
   
</mx:Application>

Comment and uncomment row 31 (p.textAlign = TextAlign.JUSTIFY;), if commented, everything is ok, else, the link doesn't work anymore

I have flashplayer 10,0,32,18 installed.

Thanks a lot.

Olivier

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 19, 2010 Feb 19, 2010

Copy link to clipboard

Copied

Hi,

The behaviour is very mysterious :

on my pc, if I put :

textFlow.flowComposer.getControllerAt(0).setCompositionSize(200,7999);

==> everything works in justify mode

textFlow.flowComposer.getControllerAt(0).setCompositionSize(200,8000);

==> it doesn't work in justify mode !!!

On an other pc, the limit is different :

8048 => it works

8049 => it does'nt work

Any limitation known about the composition height ?

Thanks,

Olivier

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
Feb 20, 2010 Feb 20, 2010

Copy link to clipboard

Copied

Hi,

I can duplicate the bug with the 10.0 player - it doesn't reproduce with the 10.1 player.  Looks like its one of the player bugs that was fixed in 10.1.

You can download player 10.1 beta 2 here:

http://labs.adobe.com/technologies/flashplayer10/

I'm using a more recent 101 player than beta 2 so I can't guarantee the fix is in beta2.

I don't have a 10.0 workaround.

It seems to work in this case but why are you using UIComponent?  Why not use a Sprite and add it to the textArea's rawChildren?  Is there an advantage to UIComponent?  A sprite is fully interactive in this case.  Switching to Sprite doesn't solve the bug but I was just curious.

Thanks,

Richard

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Mar 22, 2011 Mar 22, 2011

Copy link to clipboard

Copied

LATEST

It is displayed as a letter without being linked in Flex SDK development here when I meet the following conditions.

flex_sdk_4.5.0.18623 -- It is not linked.

flex_sdk_4.1.0.16076 -- I work definitely.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines