I'm interested in opinions on this, too...

Is that comparison (e.target == left_arrow) the best way to find out what
your target object is? ... and would strict equality make a difference?

-jonathan


On Tue, Mar 25, 2008 at 10:15 AM, Allandt Bik-Elliott (Receptacle) <
[EMAIL PROTECTED]> wrote:

> replaced the Scrollbar method with this
>
> [CODE]
>          // executes when the up arrow is pressed
>          protected function arrowPressed( e:MouseEvent ):void
>         {
>                        trace (e.target.name);
>              var dir:int = (e.target == left_arrow) ? -1 : 1;
>                         scrollTarget(dir);
>         }
>
>                public function leftBumperPressed (e:MouseEvent):void
>                {
>                        var dir:int = -1;
>                        scrollTarget(dir);
>                }
>
>                public function rightBumperPressed (e:MouseEvent):void
>                {
>                        var dir:int = 1;
>                        scrollTarget(dir);
>                }
>
>                private function scrollTarget (dir:int)
>                 {
>                        var total:Number = slider.percent + (dir *
> scrollSpeed);
>                        Tweener.addTween(slider,{percent:total, time:0.5});
> // Tweener
> tween added to add friction to arrow presses - God bless Zeh and chums!
>                }
> [/CODE]
>
> a
>
>
> On 25 Mar 2008, at 12:29, Allandt Bik-Elliott (Receptacle) wrote:
>
> > Hi guys
> >
> > quick question really.
> >
> > I have a Scrollbar class with a public method, arrowPressed
> > (e:MouseEvent), that i'm trying to call from another class,
> > TimelineArea(), using objects with the same name with the lines:
> >
> > left_arrow.addEventListener( MouseEvent.MOUSE_DOWN,
> > scrollbar.arrowPressed );
> > right_arrow.addEventListener( MouseEvent.MOUSE_DOWN,
> > scrollbar.arrowPressed );
> > // note scrollbar is an instance of the Scrollbar class
> >
> > the method in the Scrollbar class is as follows:
> >
> > public function arrowPressed( e:MouseEvent ):void
> > {
> >       var dir:int = (e.target == left_arrow) ? -1 : 1;
> >       var total:Number = slider.percent + (dir * scrollSpeed);
> >       Tweener.addTween(slider,{percent:total, time:0.5}); // Tweener
> > tween added to add friction to arrow presses - God bless Zeh and
> > chums!
> > }
> >
> >
> > The result of this is that both left_arrow and right_arrow in the
> > TimelineArea class give a (e.target == left_arrow) = false result
> > and only move the timeline forward whereas the left_arrow and
> > right_arrow within the Scrollbar class give the correct result:
> > right_arrow = false (moves the timeline +1), left_arrow = true
> > (moves the timeline -1)
> >
> > why would using the public method externally pass a different
> > result to using it internally, please?
> >
> > I've included both classes below for context
> >
> > thanks for your time
> > a
> >
> >
> >
> > Scrollbar Class
> > [CODE]
> > package
> > {
> >     import flash.display.Sprite;
> >     import flash.events.MouseEvent;
> >     import com.caurina.transitions.*;
> >
> >     public class Scrollbar extends Sprite
> >     {
> >         // elements
> >         protected var slider:Slider;
> >         protected var left_arrow:Sprite;
> >         protected var right_arrow:Sprite;
> >
> >         protected var scrollSpeed:Number = .02;
> >
> >         // read/write percentage value relates directly to the slider
> >         public function get percent():Number { return
> > slider.percent; }
> >         public function set percent( p:Number ):void
> > { slider.percent = p; }
> >
> >         public function Scrollbar()
> >         {
> >             createElements();
> >         }
> >
> >         // executes when the up arrow is pressed
> >         public function arrowPressed( e:MouseEvent ):void
> >         {
> >                       var dir:int = (e.target == left_arrow) ? -1 : 1;
> >                       var total:Number = slider.percent + (dir *
> scrollSpeed);
> >                       Tweener.addTween(slider,{percent:total, time:0.5});
> // Tweener
> > tween added to add friction to arrow presses - God bless Zeh and
> > chums!
> >         }
> >
> >         protected function createElements():void
> >         {
> >             slider = new Slider();
> >
> >             left_arrow = new Sprite();
> >             left_arrow.graphics.beginFill( 0x999999, 1 );
> >                       left_arrow.graphics.moveTo(20,0);
> >             left_arrow.graphics.lineTo(20,40);
> >                       left_arrow.graphics.lineTo(10,40);
> >                       left_arrow.graphics.curveTo(0,40,0,30);
> >                       left_arrow.graphics.lineTo(0,10);
> >                       left_arrow.graphics.curveTo(0,0,10,0);
> >                       left_arrow.graphics.lineTo(20,0);
> >             left_arrow.graphics.endFill();
> >
> >             right_arrow = new Sprite();
> >             right_arrow.graphics.beginFill( 0x999999, 1 );
> >                       right_arrow.graphics.lineTo(10,0);
> >                       right_arrow.graphics.curveTo(20,0,20,10);
> >                       right_arrow.graphics.lineTo(20,30);
> >                       right_arrow.graphics.curveTo(20,40,10,40);
> >                       right_arrow.graphics.lineTo(0,40);
> >                       right_arrow.graphics.lineTo(0,0);
> >             right_arrow.graphics.endFill();
> >
> >             slider.x = left_arrow.width;
> >             right_arrow.x = slider.x + slider.width;
> >
> >             left_arrow.addEventListener( MouseEvent.MOUSE_DOWN,
> > arrowPressed );
> >             right_arrow.addEventListener( MouseEvent.MOUSE_DOWN,
> > arrowPressed );
> >
> >             addChild( slider );
> >             addChild( left_arrow );
> >             addChild( right_arrow );
> >         }
> >
> >         public override function addEventListener( type:String,
> > listener:Function, useCapture:Boolean=false, priority:int=0,
> > useWeakReference:Boolean=false ):void
> >         {
> >             if ( type === SliderEvent.CHANGE )
> >             {
> >                 slider.addEventListener( SliderEvent.CHANGE,
> > listener, useCapture, priority, useWeakReference );
> >                 return;
> >             }
> >             super.addEventListener( type, listener, useCapture,
> > priority, useWeakReference );
> >         }
> >         public override function removeEventListener( type:String,
> > listener:Function, useCapture:Boolean=false ):void
> >         {
> >             if ( type === SliderEvent.CHANGE )
> >             {
> >                 slider.removeEventListener( SliderEvent.CHANGE,
> > listener, useCapture );
> >                 return;
> >             }
> >             super.removeEventListener( type, listener, useCapture );
> >         }
> >     }
> > }
> > [/CODE]
> >
> > TimelineArea Class (cut down for readability and relevance)
> > [CODE]
> > package
> > {
> >       //package imports
> >       import flash.display.Sprite;
> >
> >       //scrollbar imports
> >       import com.caurina.transitions.*;
> >       import flash.geom.*;
> >       import flash.events.*;
> >       import com.receptacle.utils.*; // includes SimpleRectangle and
> > SimpleTextField
> >
> >       internal class TimelineArea extends Sprite
> >       {
> >               // class variable declarations
> >               private var cp:CommonProperties;
> >               private var taTitleBarY;
> >               private var taPanelY:uint;
> >               private var taPanelHeight:uint
> >               private var scrollableBase:Sprite;
> >               private var scrollbar:Scrollbar
> >               private var stage_width:uint;
> >               private var stage_height:uint;
> >               private var yearDistance:uint;
> >               private var startYear:int;
> >               private var endYear:int;
> >               private var yearDiv:uint;
> >               private var panelY:uint;
> >               private var panelColour:uint;
> >               private var taTitleBarHeight:uint;
> >               private var nonScrollableBase:Sprite;
> >               private var commonGrey:uint;
> >               private var subheadingFont:String;
> >               private var headingFont:String;
> >
> >               // constructor
> >               public function TimelineArea():void
> >               {
> >                       setVars();
> >                       initialiseTimelineScrollBar();
> >                       addTimelineAreaNavigation();
> >               }
> >
> >               private function setVars()
> >               {
> >                       scrollbar = new Scrollbar();
> >                       cp = new CommonProperties();
> >                       stage_width      = cp.stage_width;
> >                       stage_height     = cp.stage_height;
> >                       taTitleBarHeight = cp.taTitleBarHeight;
> >                       taTitleBarY      = cp.taTitleBarY;
> >                       taPanelY         = cp.taPanelY;
> >                       taPanelHeight    = cp.taPanelHeight;
> >                       commonGrey       = cp.tickColour;
> >                       headingFont      = cp.headingFont;
> >                       subheadingFont   = cp.subheadingFont;
> >                       yearDistance     = cp.yearDistance;
> >                       startYear        = cp.startYear;
> >                       endYear          = cp.endYear;
> >                       yearDiv          = cp.yearDiv;
> >
> >                       scrollbar.x     = 16;
> >                       scrollbar.y     = 550-cp.titleBarHeight;
> >                       scrollableBase = new Sprite();
> >                       nonScrollableBase = new Sprite();
> >                       scrollableBase.y = 0;
> >
> >                       addChild(scrollableBase);
> >                       addChild(nonScrollableBase);
> >               }
> >
> >               private function initialiseTimelineScrollBar():void
> >               {
> >                       trace ("Timeline scrollbar initialised");
> >
> >                       var scroll_rect:Rectangle = new Rectangle( 0, 0,
> stage_width,
> > taPanelHeight+taTitleBarHeight+30 );
> >                       var sc:ScrollContent = new ScrollContent(
> scrollableBase,
> > scrollbar, scroll_rect );
> >
> >                       addChild( scrollbar );
> >               }
> >
> >               private function addTimelineAreaNavigation():void
> >               {
> >                       var left_arrow:SimpleRectangle = new
> SimpleRectangle(0x000000,
> > 0x000000, 0, 0, stage_width/3, taPanelHeight + taTitleBarHeight);
> >                       var right_arrow:SimpleRectangle = new
> SimpleRectangle(0x000000,
> > 0x000000, (stage_width/3)*2, 0, stage_width/3, taPanelHeight +
> > taTitleBarHeight);
> >
> >                       left_arrow.alpha = 0;
> >                       right_arrow.alpha = 0;
> >
> >                       left_arrow.addEventListener( MouseEvent.MOUSE_DOWN
> ,
> > scrollbar.arrowPressed );
> >                       right_arrow.addEventListener(
> MouseEvent.MOUSE_DOWN,
> > scrollbar.arrowPressed );
> >
> >                       addChild(left_arrow);
> >                       addChild(right_arrow);
> >               }
> >       }
> > }
> > [/CODE]
> >
> >
> > _______________________________________________
> > Flashcoders mailing list
> > Flashcoders@chattyfig.figleaf.com
> > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> >
>
>
> _______________________________________________
> Flashcoders mailing list
> Flashcoders@chattyfig.figleaf.com
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>



-- 
-jonathan howe :: 404.434.2321 :: 180 High St Apt 26 Portland, ME 04101
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to