>>> mcScrollingIconContainer["clip"+i].onRelease = function():Void
Don't use anonymous functions. If you have to use AS2, then use mx.utils.Delegate instead. Also, you keep repeating, "mcScrollingIconContainer["clip"+i]" in your code over and over in the same loop. Instead, I think a tighter way (and perhaps better performance since there is not a continual lookup) is to create a reference to it instead, and then just use the reference to assign behavior: var thisContainer:MovieClip = mcScrollingIconContainer["clip"+i]; thisContainer.onRelease = Delegate.create(this, onContainerRelease); thisContainer.onRollOver = Delegate.create(this, onContainerRollOver); thisContainer.onPress = Delegate.create(this, onContainerPress); thisContainer.onReleaseOutside = Delegate.create(this, onContainerReleaseOutside); Jason Merrill Bank of America Global Technology & Operations & Global Risk L&LD eTools & Multimedia Join the Bank of America Flash Platform Developer Community Are you a Bank of America associate interested in innovative learning ideas and technologies? Check out our internal GT&O Innovative Learning Blog & subscribe. >>-----Original Message----- >>From: [EMAIL PROTECTED] >>[mailto:[EMAIL PROTECTED] On Behalf >>Of eric e. dolecki >>Sent: Thursday, June 12, 2008 1:19 PM >>To: Flash Coders List >>Subject: Re: [Flashcoders] looking at the maths for an osx style dock >> >>sorry for the OT response, but man this code makes me so glad >>I don't do AS2 anymore ;) >>- e. >> >>On Thu, Jun 12, 2008 at 12:48 PM, allandt bik-elliott >><[EMAIL PROTECTED]> >>wrote: >> >>> hi guys - i queried this a few days ago when all the messages were >>> disappearing into the hole - i've amended my code so it's >>pretty darn >>> close to what i want but not quite >>> >>> basically, i'm writing an osx style dock and at the moment, the >>> scaling is working perfectly but the positioning is a bit >>flaky - it >>> looks like a string of beads on elastic that snap to the >>previous bead >>> - i've posted an example here >>http://www.m2surveys.com/homeserve/dock/ >>> >>> the code that governs the size and position is this method >>> >>> private function addIconMouseListeners():Void >>> { >>> var ref:Object = this; >>> >>> for (var i:Number = 0; i < aIconArray.length; i++) >>> { >>> mcScrollingIconContainer["clip"+i].sTitle = >>> aIconArray[i].sTitle; >>> mcScrollingIconContainer["clip"+i].sLink = >>> aIconArray[i].sLink; >>> mcScrollingIconContainer["clip"+i].nColour = >>> aIconArray[i].nColour; >>> mcScrollingIconContainer["clip"+i].ID = i; >>> mcScrollingIconContainer["clip"+i].thisX = >>> mcScrollingIconContainer["clip"+i]._x; >>> mcScrollingIconContainer["clip"+i].onMouseMove = >>function():Void >>> { >>> var thisXmouse = Math.round(this._xmouse); >>> var nIconSpan:Number = Math.round(ref.nIconWidth*5); >>> //this governs the position and is the strange bit >>> var nXPercent:Number = >>> Math.round(thisXmouse/nIconSpan*100)/1.8; // adjusting this by /1.8 >>> has made the icons move along - otherwise they stay static, >>with only >>> the moused over icon scaling and moving >>> nXPercent = (nXPercent > 45) ? 45 : >>(nXPercent < -45) ? >>> -45 >>> : nXPercent; >>> this._x = this.thisX - nXPercent; >>> >>> // this governs the scale and works great >>> if (thisXmouse < nIconSpan && -1*thisXmouse >>< nIconSpan) >>> { >>> var nWidth:Number = ref.nIconWidth + >>ref.nIconSpacing; >>> var nPercent:Number = >>Math.round((thisXmouse < 0) ? >>> (thisXmouse/nIconSpan) *-100 : (thisXmouse/nIconSpan) *100); >>> nPercent = 100 - nPercent; >>> >>> if (nPercent > 55) >>> { >>> this._yscale = this._xscale = nPercent; >>> >>> } else { >>> this._yscale = this._xscale = 55; >>> } >>> } else { >>> this._yscale = this._xscale = 55; >>> } >>> }; >>> mcScrollingIconContainer["clip"+i].onRollOver = >>function():Void >>> { >>> this.swapDepths(1000); // not needed after >>_x is figured out >>> ref.tfTradeTitle.text = this.sTitle; >>> ref.addGlow(this); >>> >>> }; >>> mcScrollingIconContainer["clip"+i].onRollOut = >>function():Void >>> { >>> ref.removeGlow(this); >>> } >>> mcScrollingIconContainer["clip"+i].onRelease = >>function():Void >>> { >>> getURL(this.sLink, "_self"); >>> trace("getURL: "+this.sLink); >>> }; >>> >>> } >>> } >>> >>> could anyone make any suggestions as to how i can tighten it up, >>> please? I could really use some help >>> >>> thanks a lot >>> alz >>> _______________________________________________ >>> Flashcoders mailing list >>> [email protected] >>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders >>> >>_______________________________________________ >>Flashcoders mailing list >>[email protected] >>http://chattyfig.figleaf.com/mailman/listinfo/flashcoders >> _______________________________________________ Flashcoders mailing list [email protected] http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

