all groups > flash actionscript > february 2007 >
You're in the

flash actionscript

group:

Stop the carousel from moving


Stop the carousel from moving chriskeeler2
2/6/2007 9:12:14 PM
flash actionscript: I've added navigation buttons to this carousel of items that will move the
carousel either left or right, however I would like the carousel to STOP
anytime an icon is at the center X point. When a nav button is pressed, the
carousel moves until the next icon is at center X, etc.

AS and XML code posted below:

Any help is appreciated. Thanks.
-Christopher C. Keeler

import mx.utils.Delegate;
import mx.transitions.Tween;
import mx.transitions.easing.*;
import flash.filters.BlurFilter;
var blur:BlurFilter = new BlurFilter(0, 0, 1);
var stand:BlurFilter = new BlurFilter(0,0,0);
var numOfItems:Number;
var radiusX:Number = 300;
var radiusY:Number = 75;
var centerX:Number = Stage.width / 2;
var centerY:Number = Stage.height / 2;
var speed:Number = 0.05;
var perspective:Number = 80;
var nextX:Number = 660;
var nextY:Number = 530;
var mp3X:Number = 550;
var mp3Y:Number = 220;
var home:MovieClip = this;
var tooltip:MovieClip = this.attachMovie("tooltip","tooltip",10000);
var CatalogNext:MovieClip =
this.attachMovie("CatalogNext","CatalogNext",10001);
var CatalogPrev:MovieClip =
this.attachMovie("CatalogPrev","CatalogPrev",10002);



this.filters = [stand];
theText._alpha = 0;
tooltip._alpha = 0;

loadMovie(CatalogNext,_parent);
loadMovie(CatalogPrev,_parent);
CatalogNext._x = nextX;
CatalogNext._y = nextY;
CatalogPrev._x = ((centerX*2)-nextX);
CatalogPrev._y = nextY;

var xml:XML = new XML();
xml.ignoreWhite = true;

xml.onLoad = function()
{
var nodes = this.firstChild.childNodes;
numOfItems = nodes.length;
for(var i=0;i<numOfItems;i++)
{
var t = home.attachMovie("item","item"+i,i+1);
t.angle = i * ((Math.PI*2)/numOfItems);
t.onEnterFrame = mover;
t.toolText = nodes[i].attributes.tooltip;
t.content = nodes[i].attributes.content;
t.icon.inner.loadMovie(nodes[i].attributes.image);
t.r.inner.loadMovie(nodes[i].attributes.image);
t.icon.onRollOver = over;
t.icon.onRollOut = out;
t.icon.onRelease = released;
}
}

function over()
{
//BONUS Section
var sou:Sound = new Sound();
sou.attachSound("sover");
sou.start();

home.tooltip.tipText.text = this._parent.toolText;
home.tooltip._x = this._parent._x;
home.tooltip._y = this._parent._y - this._parent._height/2;
home.tooltip.onEnterFrame = Delegate.create(this,moveTip);
home.tooltip._alpha = 100;
}

function out()
{
delete home.tooltip.onEnterFrame;
home.tooltip._alpha = 0;
}

function released()
{
//BONUS Section
var sou:Sound = new Sound();
sou.attachSound("sdown");
sou.start();

// home.tooltip._alpha = 0;
var nexttw:Tween = new
Tween(home.CatalogNext,"_xscale",Strong.easeOut,t._xscale,0,1,true);
var nexttw2:Tween = new
Tween(home.CatalogNext,"_yscale",Strong.easeOut,t._yscale,0,1,true);
var nexttw3:Tween = new
Tween(home.CatalogNext,"_alpha",Strong.easeOut,100,0,1,true);
var prevtw:Tween = new
Tween(home.CatalogPrev,"_xscale",Strong.easeOut,t._xscale,0,1,true);
var prevtw2:Tween = new
Tween(home.CatalogPrev,"_yscale",Strong.easeOut,t._yscale,0,1,true);
var prevtw3:Tween = new
Tween(home.CatalogPrev,"_alpha",Strong.easeOut,100,0,1,true);
for(var i=0;i<numOfItems;i++)
{
var t:MovieClip = home["item"+i];
t.xPos = t._x;
t.yPos = t._y;
t.theScale = t._xscale;
delete t.icon.onRollOver;
delete t.icon.onRollOut;
delete t.icon.onRelease;
delete t.onEnterFrame;
if(t != this._parent)
{
var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,0,1,true);
var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,0,1,true);
var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,100,0,1,true);
}
else
{
var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,100,1,true);
var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,100,1,true);
var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,200,1,true);
var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,320,1,true);
var tw5:Tween = new Tween(theText,"_alpha",Strong.easeOut,0,100,1,true);

var s:Object = this;
tw.onMotionStopped = function()
{
mp3player();
s.onRelease = unReleased;
}
}
}
}

function unReleased()
{
//BONUS Section
var sou:Sound = new Sound();
sou.attachSound("sdown");
sou.start();

delete this.onRelease;
removeMovieClip("mp3player");
var tw:Tween = new Tween(theText,"_alpha",Strong.easeOut,100,0,0.5,true);
for(var i=0;i<numOfItems;i++)
{
var t:MovieClip = home["item"+i];
if(t != this._parent)
{
var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,0,t.theScale,1,true);
var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,0,t.theScale,1,true);
var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,0,100,1,true);
}
else
{
var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,100,t.theScale,1,true);
var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,100,t.theScale,1,true);
var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,t.xPos,1,true);
var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,t.yPos,1,true);
var nexttw:Tween = new
Tween(home.CatalogNext,"_xscale",Strong.easeOut,t._xscale,100,1,true);
var nexttw2:Tween = new
Tween(home.CatalogNext,"_yscale",Strong.easeOut,t._yscale,100,1,true);
var nexttw3:Tween = new
Tween(home.CatalogNext,"_alpha",Strong.easeOut,0,100,1,true);
var prevtw:Tween = new
Tween(home.CatalogPrev,"_xscale",Strong.easeOut,t._xscale,100,1,true);
var prevtw2:Tween = new
Tween(home.CatalogPrev,"_yscale",Strong.easeOut,t._yscale,100,1,true);
var prevtw3:Tween = new
Tween(home.CatalogPrev,"_alpha",Strong.easeOut,0,100,1,true);

tw.onMotionStopped = function()
{
for(var i=0;i<numOfItems;i++)
{
var t:MovieClip = home["item"+i];
t.icon.onRollOver = Delegate.create(t.icon,over);
t.icon.onRollOut = Delegate.create(t.icon,out);
t.icon.onRelease = Delegate.create(t.icon,released);
t.onEnterFrame = mover;
}
}
}
}
}


function moveTip()
{
home.tooltip._x = this._parent._x;
home.tooltip._y = this._parent._y - this._parent._height/2;
}

xml.load("icons.xml");

function mover() {

this._x = Math.cos(this.angle) * radiusX + centerX;
this._y = Math.sin(this.angle) * radiusY + centerY;
var s:Number = (this._y - perspective) / (centerY+radiusY-perspective);
this._xscale = this._yscale = s * 100;
this.angle += this._parent.speed;
this.swapDepths(Math.round(this._xscale) + 100);
this._alpha = Math.round(Math.sin(this.angle) * 50) + 100;
blur.blurX = Math.round(Math.sin(this.angle - Math.PI) * 10);
blur.blurY = Math.round(Math.sin(this.angle - Math.PI) * 10);
this.filters = [blur];

}

Re: Stop the carousel from moving ni9e
2/6/2007 9:38:52 PM
I would ask Lee Brimlow...He might have covered it in the Creating 3D Carousels series. =/

Re: Stop the carousel from moving chriskeeler2
2/6/2007 9:43:38 PM
Yes, well this is the base of two of his tutorials, and I just combined them
together. I have posted the same question there as well. I will add this
disclaimer so you know that I did not write the bulk of this: Most of above
code was origianally written by Lee Brimelow at www.gotoandlearn.com.

Thanks for pointing that out.
-Chris
AddThis Social Bookmark Button