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
> > [email protected]
> > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> >
>
>
> _______________________________________________
> Flashcoders mailing list
> [email protected]
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
--
-jonathan howe :: 404.434.2321 :: 180 High St Apt 26 Portland, ME 04101
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders