feathersui / feathersui-starling

User interface components for Starling Framework and Adobe AIR
https://feathersui.com/learn/as3-starling/
Other
915 stars 386 forks source link

Moving scrollText off the stage fails #275

Closed randytroppmann closed 11 years ago

randytroppmann commented 11 years ago

It seems to be leaving a remnant behind. I discovered this because a tween of it's container was not hiding all the scroll text. Sometimes it worked, sometimes not. Here is the class which has a button that moves itself on stage and (mostly off)

package ca.nait.d3.sentenceStar.view.screens{ import flash.text.TextFormat;

import ca.nait.d3.sentenceStar.Assets;

import feathers.controls.Screen;
import feathers.controls.ScrollText;
import feathers.display.TiledImage;

import starling.animation.Tween;
import starling.core.Starling;
import starling.display.Button;
import starling.events.Event;

public class HelpScreen extends Screen{
    private var helpButton:Button;
    private var background:TiledImage;

    protected var loremIpsum:String = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
    private var scrollText:ScrollText;
    public var isOpen:Boolean = false;

    public function HelpScreen(){
        super();
    }   

    override protected function initialize():void{
        background = new TiledImage(Assets.ta.getTexture("white-tile"));
        background.alpha = .6;
        addChild(background);

        helpButton = new Button(Assets.ta.getTexture("help-button"));
        helpButton.addEventListener(Event.TRIGGERED, onHelpButtonClick);
        helpButton.pivotY = helpButton.height/2;
        helpButton.pivotX = helpButton.width;
        helpButton.alpha = .6;
        addChild(helpButton);

        var tf:TextFormat = new TextFormat("_sans", 20);
        scrollText = new ScrollText();
        scrollText.textFormat = tf;
        scrollText.isHTML = true;
        scrollText.text = loremIpsum + "<br><br>" + loremIpsum + "<br><br>" + loremIpsum + "<br><br>" + loremIpsum;
        addChild(scrollText);
    }

    private function onHelpButtonClick(p_evt:Event):void{
        isOpen = !isOpen;
        this.x = isOpen?this.stage.stageWidth/2:900;
        /*var val:Number = isOpen?this.stage.stageWidth/2:this.stage.stageWidth;
        var tween:Tween = new Tween(this, 0.3, "easeIn");
        scrollText.alpha = 1; 
        tween.onComplete = function():void{ 
                                scrollText.alpha = .2; 
                                trace("complete");
                            }; //weird bug in feathers
        tween.animate("x", val);
        Starling.juggler.add(tween);*/
    }

    override protected function draw():void{
        background.width = this.stage.stageWidth/2;
        background.height = this.stage.stageHeight;
        helpButton.y = this.stage.stageHeight/2;
        scrollText.x = background.x + 20;
        scrollText.y = 20;
        scrollText.width = background.width - 40;
        scrollText.height = background.height - 40;
    }

    override public function dispose():void{
        super.dispose();
    }

}

}

joshtynjala commented 11 years ago

I believe that this issue is now fixed with recent commits.