help with as3 image carousel
- goltoof
- Newbie


- Joined: Feb 01, 2010
- Posts: 7
- Status: Offline
I got this script for an xml controlled image carousel. It works really well, I just need to tweak it a bit to get it to work the way I want.
I want to position the carousel in a certain area of the movie. The only parameter that I see to control where it's positioned is "var floor:Number = 20;" but this only controls the vertical position. I need to control the horizontal position, right now it's just centered. I see "xpos3D" but don't know what to make of it.
I also want to keep it from showing up outside of the frames I want it to appear. Right now when I put the script in the movie it shows up in every frame. How do I get it appear only in certain frames of the movie? When i put "stop();" at the end of the keyframe it still shows in the frames after it.
The last thing I need is to position the animation on top of other layers. Right now it appears below all other layers in the movie.
I don't know what parts to modify to accomplish this so of course I don't know what parts to post, which is why I'm posting the whole thing.
Hints on how to accomplish any of the above much appreciated!
I want to position the carousel in a certain area of the movie. The only parameter that I see to control where it's positioned is "var floor:Number = 20;" but this only controls the vertical position. I need to control the horizontal position, right now it's just centered. I see "xpos3D" but don't know what to make of it.
I also want to keep it from showing up outside of the frames I want it to appear. Right now when I put the script in the movie it shows up in every frame. How do I get it appear only in certain frames of the movie? When i put "stop();" at the end of the keyframe it still shows in the frames after it.
The last thing I need is to position the animation on top of other layers. Right now it appears below all other layers in the movie.
I don't know what parts to modify to accomplish this so of course I don't know what parts to post, which is why I'm posting the whole thing.
Hints on how to accomplish any of the above much appreciated!
Code: [ Select ]
//We use 70x70 sized images (change this if different for your images)
const IMAGE_WIDTH:uint = 70;
const IMAGE_HEIGHT:uint = 70;
//Set the focal length
var focalLength:Number = 400;
//Set the vanishing point
var vanishingPointX:Number = stage.stageWidth / 2;
var vanishingPointY:Number = stage.stageHeight / 2;
//The 3D floor for the images
var floor:Number = 20;
//We calculate the angleSpeed in the ENTER_FRAME listener
var angleSpeed:Number = 0;
//Radius of the circle
var radius:Number = 200;
//Specify the path to the XML file.
//You can use my path or your own.
var xmlFilePath:String = "3D-carousel-settings.xml";
//We save the loaded XML to a variable
var xml:XML;
//This array will contain all the imageHolders
var imageHolders:Array = new Array();
//We want to know how many images have been loaded
var numberOfLoadedImages:uint = 0;
//The total number of images according to XML file
var numberOfImages:uint = 0;
//Load the XML file.
var loader = new URLLoader();
loader.load(new URLRequest(xmlFilePath));
//We call the function xmlLoaded() when the loading is complete.
loader.addEventListener(Event.COMPLETE, xmlLoaded);
//This function is called when the XML file is loaded
function xmlLoaded(e:Event):void {
//Create a new XML object from the loaded XML data
xml = new XML(loader.data);
xml.ignoreWhitespace = true;
//Call the function that loads the images
loadImages();
}
//This function loads and creates holders for the images specified in the 3D-carousel-settings.xml
function loadImages():void {
//Get the total number of images from the XML file
numberOfImages = xml.number_of_images;
//Loop through the images found in the XML file
for each (var image:XML in xml.images.image) {
//Create a new image holder for an image
var imageHolder:MovieClip = new MovieClip();
//Create a loader that will load an image
var imageLoader = new Loader();
//Add the imageLoader to the imageHolder
imageHolder.addChild(imageLoader);
//We don't want to catch any mouse events from the loader
imageHolder.mouseChildren = false;
//Position the imageLoader so that the registration point of the holder is centered
imageLoader.x = - (IMAGE_WIDTH / 2);
imageLoader.y = - (IMAGE_HEIGHT / 2);
//Save where the imageHolder should link to
imageHolder.linkTo = image.link_to;
//Add the imageHolder to the imageHolders array
imageHolders.push(imageHolder);
//Load the image
imageLoader.load(new URLRequest(image.url));
//Listen when the image is loaded
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
}
}
//This function is called when an image is loaded
function imageLoaded(e:Event):void {
//Update the number of loaded images
numberOfLoadedImages++;
//Set the bitmap smoothing to true for the image (we know that the loader's content is a bitmap).
e.target.content.smoothing = true;
//Check to see if this is the last image loaded
if (numberOfLoadedImages == numberOfImages) {
//Set up the carousel
initializeCarousel();
}
}
//This function is called when all the images have been loaded.
//Now we are ready to create the 3D carousel.
function initializeCarousel():void {
//Calculate the angle difference between the images (in radians)
var angleDifference:Number = Math.PI * (360 / numberOfImages) / 180;
//Loop through the images
for (var i:uint = 0; i < imageHolders.length; i++) {
//Assign the imageHolder to a local variable
var imageHolder:MovieClip = (MovieClip)(imageHolders[i]);
//Get the angle for the image (we space the images evenly)
var startingAngle:Number = angleDifference * i;
//Position the imageHolder
imageHolder.xpos3D = radius * Math.cos(startingAngle);
imageHolder.zpos3D = radius * Math.sin(startingAngle);
imageHolder.ypos3D = floor;
//Set a "currentAngle" attribute for the imageHolder
imageHolder.currentAngle = startingAngle;
//Calculate the scale ratio for the imageHolder (the further the image -> the smaller the scale)
var scaleRatio = focalLength/(focalLength + imageHolder.zpos3D);
//Scale the imageHolder according to the scale ratio
imageHolder.scaleX = imageHolder.scaleY = scaleRatio;
//Set the alpha for the imageHolder
imageHolder.alpha = 0.3;
//We want to know when the mouse is over and out of the imageHolder
imageHolder.addEventListener(MouseEvent.MOUSE_OVER, mouseOverImage);
imageHolder.addEventListener(MouseEvent.MOUSE_OUT, mouseOutImage);
//We also want to listen for the clicks
imageHolder.addEventListener(MouseEvent.CLICK, imageClicked);
//Position the imageHolder to the stage (from 3D to 2D coordinates)
imageHolder.x = vanishingPointX + imageHolder.xpos3D * scaleRatio;
imageHolder.y = vanishingPointY + imageHolder.ypos3D * scaleRatio;
//Add the imageHolder to the stage
addChild(imageHolder);
}
//Add an ENTER_FRAME for the rotation
addEventListener(Event.ENTER_FRAME, rotateCarousel);
}
function rotateCarousel(e:Event):void {
//Calculate the angleSpeed according to mouse position
angleSpeed = (mouseX - vanishingPointX) / 4096;
//Loop through the images
for (var i:uint = 0; i < imageHolders.length; i++) {
//Assign the imageHolder to a local variable
var imageHolder:MovieClip = (MovieClip)(imageHolders[i]);
//Update the imageHolder's current angle
imageHolder.currentAngle += angleSpeed;
//Set a new 3D position for the imageHolder
imageHolder.xpos3D=radius*Math.cos(imageHolder.currentAngle);
imageHolder.zpos3D=radius*Math.sin(imageHolder.currentAngle);
//Calculate a scale ratio
var scaleRatio = focalLength/(focalLength + imageHolder.zpos3D);
//Scale the imageHolder according to the scale ratio
imageHolder.scaleX=imageHolder.scaleY=scaleRatio;
//Update the imageHolder's coordinates
imageHolder.x=vanishingPointX+imageHolder.xpos3D*scaleRatio;
imageHolder.y=vanishingPointY+imageHolder.ypos3D*scaleRatio;
}
//Call the function that sorts the images so they overlap each others correctly
sortZ();
}
//This function sorts the images so they overlap each others correctly
function sortZ():void {
//Sort the array so that the image which has the highest
//z position (= furthest away) is first in the array
imageHolders.sortOn("zpos3D", Array.NUMERIC | Array.DESCENDING);
//Set new child indexes for the images
for (var i:uint = 0; i < imageHolders.length; i++) {
setChildIndex(imageHolders[i], i);
}
}
//This function is called when the mouse is over an imageHolder
function mouseOverImage(e:Event):void {
//Set alpha to 1
e.target.alpha=1;
}
//This function is called when the mouse is out of an imageHolder
function mouseOutImage(e:Event):void {
//Set alpha to 0.3
e.target.alpha=0.3;
}
//This function is called when an imageHolder is clicked
function imageClicked(e:Event):void {
//Navigate to the URL that is in the "linkTo" variable
navigateToURL(new URLRequest(e.target.linkTo));
}
const IMAGE_WIDTH:uint = 70;
const IMAGE_HEIGHT:uint = 70;
//Set the focal length
var focalLength:Number = 400;
//Set the vanishing point
var vanishingPointX:Number = stage.stageWidth / 2;
var vanishingPointY:Number = stage.stageHeight / 2;
//The 3D floor for the images
var floor:Number = 20;
//We calculate the angleSpeed in the ENTER_FRAME listener
var angleSpeed:Number = 0;
//Radius of the circle
var radius:Number = 200;
//Specify the path to the XML file.
//You can use my path or your own.
var xmlFilePath:String = "3D-carousel-settings.xml";
//We save the loaded XML to a variable
var xml:XML;
//This array will contain all the imageHolders
var imageHolders:Array = new Array();
//We want to know how many images have been loaded
var numberOfLoadedImages:uint = 0;
//The total number of images according to XML file
var numberOfImages:uint = 0;
//Load the XML file.
var loader = new URLLoader();
loader.load(new URLRequest(xmlFilePath));
//We call the function xmlLoaded() when the loading is complete.
loader.addEventListener(Event.COMPLETE, xmlLoaded);
//This function is called when the XML file is loaded
function xmlLoaded(e:Event):void {
//Create a new XML object from the loaded XML data
xml = new XML(loader.data);
xml.ignoreWhitespace = true;
//Call the function that loads the images
loadImages();
}
//This function loads and creates holders for the images specified in the 3D-carousel-settings.xml
function loadImages():void {
//Get the total number of images from the XML file
numberOfImages = xml.number_of_images;
//Loop through the images found in the XML file
for each (var image:XML in xml.images.image) {
//Create a new image holder for an image
var imageHolder:MovieClip = new MovieClip();
//Create a loader that will load an image
var imageLoader = new Loader();
//Add the imageLoader to the imageHolder
imageHolder.addChild(imageLoader);
//We don't want to catch any mouse events from the loader
imageHolder.mouseChildren = false;
//Position the imageLoader so that the registration point of the holder is centered
imageLoader.x = - (IMAGE_WIDTH / 2);
imageLoader.y = - (IMAGE_HEIGHT / 2);
//Save where the imageHolder should link to
imageHolder.linkTo = image.link_to;
//Add the imageHolder to the imageHolders array
imageHolders.push(imageHolder);
//Load the image
imageLoader.load(new URLRequest(image.url));
//Listen when the image is loaded
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
}
}
//This function is called when an image is loaded
function imageLoaded(e:Event):void {
//Update the number of loaded images
numberOfLoadedImages++;
//Set the bitmap smoothing to true for the image (we know that the loader's content is a bitmap).
e.target.content.smoothing = true;
//Check to see if this is the last image loaded
if (numberOfLoadedImages == numberOfImages) {
//Set up the carousel
initializeCarousel();
}
}
//This function is called when all the images have been loaded.
//Now we are ready to create the 3D carousel.
function initializeCarousel():void {
//Calculate the angle difference between the images (in radians)
var angleDifference:Number = Math.PI * (360 / numberOfImages) / 180;
//Loop through the images
for (var i:uint = 0; i < imageHolders.length; i++) {
//Assign the imageHolder to a local variable
var imageHolder:MovieClip = (MovieClip)(imageHolders[i]);
//Get the angle for the image (we space the images evenly)
var startingAngle:Number = angleDifference * i;
//Position the imageHolder
imageHolder.xpos3D = radius * Math.cos(startingAngle);
imageHolder.zpos3D = radius * Math.sin(startingAngle);
imageHolder.ypos3D = floor;
//Set a "currentAngle" attribute for the imageHolder
imageHolder.currentAngle = startingAngle;
//Calculate the scale ratio for the imageHolder (the further the image -> the smaller the scale)
var scaleRatio = focalLength/(focalLength + imageHolder.zpos3D);
//Scale the imageHolder according to the scale ratio
imageHolder.scaleX = imageHolder.scaleY = scaleRatio;
//Set the alpha for the imageHolder
imageHolder.alpha = 0.3;
//We want to know when the mouse is over and out of the imageHolder
imageHolder.addEventListener(MouseEvent.MOUSE_OVER, mouseOverImage);
imageHolder.addEventListener(MouseEvent.MOUSE_OUT, mouseOutImage);
//We also want to listen for the clicks
imageHolder.addEventListener(MouseEvent.CLICK, imageClicked);
//Position the imageHolder to the stage (from 3D to 2D coordinates)
imageHolder.x = vanishingPointX + imageHolder.xpos3D * scaleRatio;
imageHolder.y = vanishingPointY + imageHolder.ypos3D * scaleRatio;
//Add the imageHolder to the stage
addChild(imageHolder);
}
//Add an ENTER_FRAME for the rotation
addEventListener(Event.ENTER_FRAME, rotateCarousel);
}
function rotateCarousel(e:Event):void {
//Calculate the angleSpeed according to mouse position
angleSpeed = (mouseX - vanishingPointX) / 4096;
//Loop through the images
for (var i:uint = 0; i < imageHolders.length; i++) {
//Assign the imageHolder to a local variable
var imageHolder:MovieClip = (MovieClip)(imageHolders[i]);
//Update the imageHolder's current angle
imageHolder.currentAngle += angleSpeed;
//Set a new 3D position for the imageHolder
imageHolder.xpos3D=radius*Math.cos(imageHolder.currentAngle);
imageHolder.zpos3D=radius*Math.sin(imageHolder.currentAngle);
//Calculate a scale ratio
var scaleRatio = focalLength/(focalLength + imageHolder.zpos3D);
//Scale the imageHolder according to the scale ratio
imageHolder.scaleX=imageHolder.scaleY=scaleRatio;
//Update the imageHolder's coordinates
imageHolder.x=vanishingPointX+imageHolder.xpos3D*scaleRatio;
imageHolder.y=vanishingPointY+imageHolder.ypos3D*scaleRatio;
}
//Call the function that sorts the images so they overlap each others correctly
sortZ();
}
//This function sorts the images so they overlap each others correctly
function sortZ():void {
//Sort the array so that the image which has the highest
//z position (= furthest away) is first in the array
imageHolders.sortOn("zpos3D", Array.NUMERIC | Array.DESCENDING);
//Set new child indexes for the images
for (var i:uint = 0; i < imageHolders.length; i++) {
setChildIndex(imageHolders[i], i);
}
}
//This function is called when the mouse is over an imageHolder
function mouseOverImage(e:Event):void {
//Set alpha to 1
e.target.alpha=1;
}
//This function is called when the mouse is out of an imageHolder
function mouseOutImage(e:Event):void {
//Set alpha to 0.3
e.target.alpha=0.3;
}
//This function is called when an imageHolder is clicked
function imageClicked(e:Event):void {
//Navigate to the URL that is in the "linkTo" variable
navigateToURL(new URLRequest(e.target.linkTo));
}
- //We use 70x70 sized images (change this if different for your images)
- const IMAGE_WIDTH:uint = 70;
- const IMAGE_HEIGHT:uint = 70;
- //Set the focal length
- var focalLength:Number = 400;
- //Set the vanishing point
- var vanishingPointX:Number = stage.stageWidth / 2;
- var vanishingPointY:Number = stage.stageHeight / 2;
- //The 3D floor for the images
- var floor:Number = 20;
- //We calculate the angleSpeed in the ENTER_FRAME listener
- var angleSpeed:Number = 0;
- //Radius of the circle
- var radius:Number = 200;
- //Specify the path to the XML file.
- //You can use my path or your own.
- var xmlFilePath:String = "3D-carousel-settings.xml";
- //We save the loaded XML to a variable
- var xml:XML;
- //This array will contain all the imageHolders
- var imageHolders:Array = new Array();
- //We want to know how many images have been loaded
- var numberOfLoadedImages:uint = 0;
- //The total number of images according to XML file
- var numberOfImages:uint = 0;
- //Load the XML file.
- var loader = new URLLoader();
- loader.load(new URLRequest(xmlFilePath));
- //We call the function xmlLoaded() when the loading is complete.
- loader.addEventListener(Event.COMPLETE, xmlLoaded);
- //This function is called when the XML file is loaded
- function xmlLoaded(e:Event):void {
- //Create a new XML object from the loaded XML data
- xml = new XML(loader.data);
- xml.ignoreWhitespace = true;
- //Call the function that loads the images
- loadImages();
- }
- //This function loads and creates holders for the images specified in the 3D-carousel-settings.xml
- function loadImages():void {
- //Get the total number of images from the XML file
- numberOfImages = xml.number_of_images;
- //Loop through the images found in the XML file
- for each (var image:XML in xml.images.image) {
- //Create a new image holder for an image
- var imageHolder:MovieClip = new MovieClip();
- //Create a loader that will load an image
- var imageLoader = new Loader();
- //Add the imageLoader to the imageHolder
- imageHolder.addChild(imageLoader);
- //We don't want to catch any mouse events from the loader
- imageHolder.mouseChildren = false;
- //Position the imageLoader so that the registration point of the holder is centered
- imageLoader.x = - (IMAGE_WIDTH / 2);
- imageLoader.y = - (IMAGE_HEIGHT / 2);
- //Save where the imageHolder should link to
- imageHolder.linkTo = image.link_to;
- //Add the imageHolder to the imageHolders array
- imageHolders.push(imageHolder);
- //Load the image
- imageLoader.load(new URLRequest(image.url));
- //Listen when the image is loaded
- imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
- }
- }
- //This function is called when an image is loaded
- function imageLoaded(e:Event):void {
- //Update the number of loaded images
- numberOfLoadedImages++;
- //Set the bitmap smoothing to true for the image (we know that the loader's content is a bitmap).
- e.target.content.smoothing = true;
- //Check to see if this is the last image loaded
- if (numberOfLoadedImages == numberOfImages) {
- //Set up the carousel
- initializeCarousel();
- }
- }
- //This function is called when all the images have been loaded.
- //Now we are ready to create the 3D carousel.
- function initializeCarousel():void {
- //Calculate the angle difference between the images (in radians)
- var angleDifference:Number = Math.PI * (360 / numberOfImages) / 180;
- //Loop through the images
- for (var i:uint = 0; i < imageHolders.length; i++) {
- //Assign the imageHolder to a local variable
- var imageHolder:MovieClip = (MovieClip)(imageHolders[i]);
- //Get the angle for the image (we space the images evenly)
- var startingAngle:Number = angleDifference * i;
- //Position the imageHolder
- imageHolder.xpos3D = radius * Math.cos(startingAngle);
- imageHolder.zpos3D = radius * Math.sin(startingAngle);
- imageHolder.ypos3D = floor;
- //Set a "currentAngle" attribute for the imageHolder
- imageHolder.currentAngle = startingAngle;
- //Calculate the scale ratio for the imageHolder (the further the image -> the smaller the scale)
- var scaleRatio = focalLength/(focalLength + imageHolder.zpos3D);
- //Scale the imageHolder according to the scale ratio
- imageHolder.scaleX = imageHolder.scaleY = scaleRatio;
- //Set the alpha for the imageHolder
- imageHolder.alpha = 0.3;
- //We want to know when the mouse is over and out of the imageHolder
- imageHolder.addEventListener(MouseEvent.MOUSE_OVER, mouseOverImage);
- imageHolder.addEventListener(MouseEvent.MOUSE_OUT, mouseOutImage);
- //We also want to listen for the clicks
- imageHolder.addEventListener(MouseEvent.CLICK, imageClicked);
- //Position the imageHolder to the stage (from 3D to 2D coordinates)
- imageHolder.x = vanishingPointX + imageHolder.xpos3D * scaleRatio;
- imageHolder.y = vanishingPointY + imageHolder.ypos3D * scaleRatio;
- //Add the imageHolder to the stage
- addChild(imageHolder);
- }
- //Add an ENTER_FRAME for the rotation
- addEventListener(Event.ENTER_FRAME, rotateCarousel);
- }
- function rotateCarousel(e:Event):void {
- //Calculate the angleSpeed according to mouse position
- angleSpeed = (mouseX - vanishingPointX) / 4096;
- //Loop through the images
- for (var i:uint = 0; i < imageHolders.length; i++) {
- //Assign the imageHolder to a local variable
- var imageHolder:MovieClip = (MovieClip)(imageHolders[i]);
- //Update the imageHolder's current angle
- imageHolder.currentAngle += angleSpeed;
- //Set a new 3D position for the imageHolder
- imageHolder.xpos3D=radius*Math.cos(imageHolder.currentAngle);
- imageHolder.zpos3D=radius*Math.sin(imageHolder.currentAngle);
- //Calculate a scale ratio
- var scaleRatio = focalLength/(focalLength + imageHolder.zpos3D);
- //Scale the imageHolder according to the scale ratio
- imageHolder.scaleX=imageHolder.scaleY=scaleRatio;
- //Update the imageHolder's coordinates
- imageHolder.x=vanishingPointX+imageHolder.xpos3D*scaleRatio;
- imageHolder.y=vanishingPointY+imageHolder.ypos3D*scaleRatio;
- }
- //Call the function that sorts the images so they overlap each others correctly
- sortZ();
- }
- //This function sorts the images so they overlap each others correctly
- function sortZ():void {
- //Sort the array so that the image which has the highest
- //z position (= furthest away) is first in the array
- imageHolders.sortOn("zpos3D", Array.NUMERIC | Array.DESCENDING);
- //Set new child indexes for the images
- for (var i:uint = 0; i < imageHolders.length; i++) {
- setChildIndex(imageHolders[i], i);
- }
- }
- //This function is called when the mouse is over an imageHolder
- function mouseOverImage(e:Event):void {
- //Set alpha to 1
- e.target.alpha=1;
- }
- //This function is called when the mouse is out of an imageHolder
- function mouseOutImage(e:Event):void {
- //Set alpha to 0.3
- e.target.alpha=0.3;
- }
- //This function is called when an imageHolder is clicked
- function imageClicked(e:Event):void {
- //Navigate to the URL that is in the "linkTo" variable
- navigateToURL(new URLRequest(e.target.linkTo));
- }
- Anonymous
- Bot


- Joined: 25 Feb 2008
- Posts: ?
- Loc: Ozzuland
- Status: Online
February 1st, 2010, 12:59 pm
- graphixboy
- Control + Z


- Joined: Jul 11, 2005
- Posts: 1828
- Loc: In the Great White North
- Status: Offline
Create an empty movieclip on the stage in the frame you want to use. Then put all your carousel code INSIDE that blank clip. That way you should be able to position it wherever you want and it shouldn't show on multiple frames.
If at first you don't succeed F1... If that doesn't work try Google!
//// Designer, Developer & Teacher - Interactive, Motion and 3D \\\\
Portfolio at WhenImNotSleeping.com
//// Designer, Developer & Teacher - Interactive, Motion and 3D \\\\
Portfolio at WhenImNotSleeping.com
- goltoof
- Newbie


- Joined: Feb 01, 2010
- Posts: 7
- Status: Offline
graphixboy wrote:
Create an empty movieclip on the stage in the frame you want to use. Then put all your carousel code INSIDE that blank clip. That way you should be able to position it wherever you want and it shouldn't show on multiple frames.
Thanks. That makes it seem crazy easy. I created the blank clip, dragged it to the stage, gave it an instance name. In CS4 I can't just put the carousel code "in" the blank clip. So I put the code in the layer where the clip is (I assume this is wrong but it's the only option I see), the carousel is still behind everything and shows up on every frame. I put the code in the frame when I double click the clip, the carousel is still behind everything, but in a different position and doesn't show on every frame.. What am I missing?
In either case, the blank clip shows on the stage as a tiny dot. I need to resize it and reposition it. Changing the properties for x/y position does nothing and h/w properties are grayed out.
- graphixboy
- Control + Z


- Joined: Jul 11, 2005
- Posts: 1828
- Loc: In the Great White North
- Status: Offline
well a blank clip doesn't have a height or width since it doesn't have any content until the script runs so you won't be able to modify that. I assume the script is telling the carousel around the center point of the given parent which was the stage before but is now the little "dot" of the empty movie clip. If you move that little dot to the location you want the carousel to center it should work.
As for being below everything, your basically telling flash to draw the carousel inside the blank clip so you should be able to simply move the blank clip to a higher layer.
As for being below everything, your basically telling flash to draw the carousel inside the blank clip so you should be able to simply move the blank clip to a higher layer.
If at first you don't succeed F1... If that doesn't work try Google!
//// Designer, Developer & Teacher - Interactive, Motion and 3D \\\\
Portfolio at WhenImNotSleeping.com
//// Designer, Developer & Teacher - Interactive, Motion and 3D \\\\
Portfolio at WhenImNotSleeping.com
- goltoof
- Newbie


- Joined: Feb 01, 2010
- Posts: 7
- Status: Offline
graphixboy wrote:
As for being below everything, your basically telling flash to draw the carousel inside the blank clip so you should be able to simply move the blank clip to a higher layer.
I moved the movie clip dot around and got it positioned where I want without it showing on every frame. Score!
The problem still remains that the carousel shows behind everything, even though the layer containing it is positioned above every other layer.
Is this addressed in the code?
- graphixboy
- Control + Z


- Joined: Jul 11, 2005
- Posts: 1828
- Loc: In the Great White North
- Status: Offline
hmm the code is now on the timeline INSIDE the blank movie clip correct?
If so try changing line 156 from your code above to this.addChild(imageHolder);
I think its still trying to attach the images to the main stage even though it should be inside that clip. If the "this" doesn't work you might want to try blankclipinstancename.addChild(imageHolder);
If so try changing line 156 from your code above to this.addChild(imageHolder);
I think its still trying to attach the images to the main stage even though it should be inside that clip. If the "this" doesn't work you might want to try blankclipinstancename.addChild(imageHolder);
If at first you don't succeed F1... If that doesn't work try Google!
//// Designer, Developer & Teacher - Interactive, Motion and 3D \\\\
Portfolio at WhenImNotSleeping.com
//// Designer, Developer & Teacher - Interactive, Motion and 3D \\\\
Portfolio at WhenImNotSleeping.com
- goltoof
- Newbie


- Joined: Feb 01, 2010
- Posts: 7
- Status: Offline
- graphixboy
- Control + Z


- Joined: Jul 11, 2005
- Posts: 1828
- Loc: In the Great White North
- Status: Offline
Glad it worked. You could have done it all with the code but I've found that when your trying to integrate someone elses work into your project the method you followed is usually best.
If at first you don't succeed F1... If that doesn't work try Google!
//// Designer, Developer & Teacher - Interactive, Motion and 3D \\\\
Portfolio at WhenImNotSleeping.com
//// Designer, Developer & Teacher - Interactive, Motion and 3D \\\\
Portfolio at WhenImNotSleeping.com
- goltoof
- Newbie


- Joined: Feb 01, 2010
- Posts: 7
- Status: Offline
There is one little problem that arises. I have the carousel positioned on the right side of the billboard, not the center. So the right perimeter of the carousel is just on the border of the swf (20px margin), whereas there is 700px or so to the left perimeter of the carousel
The speed of the carousel is dependent on the position of the mouse. When the mouse hovers to the right of the carousel the speed reaches a peak and stays there as the mouse moves off the swf. But when the mouse hovers to the opposite end of the billboard, the carousel gradually spins ridiculously fast. I'd like to make it balanced so the carousel reaches the same speed on both sides and stops seeing mouseover at a certain point on the left.
Does this make sense?
Do you see a place to address this in the code? Otherwise I assume there's some kind of wrapper I can apply around the empty movie clip that keeps the mouseover effect contained?
The speed of the carousel is dependent on the position of the mouse. When the mouse hovers to the right of the carousel the speed reaches a peak and stays there as the mouse moves off the swf. But when the mouse hovers to the opposite end of the billboard, the carousel gradually spins ridiculously fast. I'd like to make it balanced so the carousel reaches the same speed on both sides and stops seeing mouseover at a certain point on the left.
Does this make sense?
Do you see a place to address this in the code? Otherwise I assume there's some kind of wrapper I can apply around the empty movie clip that keeps the mouseover effect contained?
- goltoof
- Newbie


- Joined: Feb 01, 2010
- Posts: 7
- Status: Offline
I got it looking the way I need, but this speed bug is pretty major and makes it for the most part unusable. I see the "angleSpeed = (mouseX - vanishingPointX) / 4096;" which as is only controls the mouseover speed, but I'm quite clueless how to fix this bug from here.
I'll keep looking but any hints much appreciated.
I'll keep looking but any hints much appreciated.
Page 1 of 1
To Reply to this topic you need to LOGIN or REGISTER. It is free.
Post Information
- Total Posts in this topic: 10 posts
- Users browsing this forum: No registered users and 44 guests
- You cannot post new topics in this forum
- You cannot reply to topics in this forum
- You cannot edit your posts in this forum
- You cannot delete your posts in this forum
- You cannot post attachments in this forum
