i'm not too up on strict equality i'm afraid - would be interested to hear someone's opinion

the comparison now is e.target.name == "left_arrow" (i've added left_arrow.name = "left_arrow" and the same for right arrow as well)


On 25 Mar 2008, at 14:28, jonathan howe wrote:

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



_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to