|
-
Thanks cancerinform
I tried your sample, but I couldn't get it to work---For the CarousselOne.fla are you supposed to link it to the AS file(Carousselone.as)through its main document class path?
I don't think it would help me anyway as I need a very specialized carousel...Basically, it needs to display 15 images(in the foreground on the main circular arc--don't really need any images in the background(beyond 180 degrees on the circle)) with no space between them(they would be in a container which has a graphic for their sides)and I don't want them to automatically rotate..just rotate on a click event--also, I would need some type of tooltip or just a textfield filled with the image title on the MOUSE_OVER event and for a DOUBLE_CLICK event I would want to display information about the images, in a separate MC textfield...
I'm guess your class modifies the carousel I had linked to first(the pv3d.org one)...I actually nearly finished two other carousels( http://www.webspaceinvader.com/2007/...sel-interface/) and the one lee brimelow created---The webspaceinvader one is almost completely coded--the only problem is that rotation in z-space on click as I need my images to stay in the same z-plane, which I don't really understand and have been unable to fix...Actually, it has an on enterframe loop which constantly updates the view and it also has a moveBackward call which would need to be fixed:
Code:
private function update3D():void
{
var target:DisplayObject3D = camera.target;
var goPosition:DisplayObject3D = camera.extra.goPosition;
var goTarget:DisplayObject3D = camera.extra.goTarget;
camera.x -= (camera.x - goPosition.x) /12;
camera.y -= (camera.y - goPosition.y) /12;
camera.z -= (camera.z - goPosition.z) /12;
target.x -= (target.x - goTarget.x) /12;
target.y -= (target.y - goTarget.y) /12;
target.z -= (target.z - goTarget.z) /12;
if all the coordinates are divided by 1 instead of 12 it more suits my needs(that is, it doesn't come forward in z-space), however it no longer performs any type of visible rotation--just jumps to the image, I have no clue as to how to fix it.
The one I am currently using is the one Lee Brimelow created--I have it all modified, but am stuck with one problem--working with the XML---
Code:
package
{
import com.gskinner.motion.GTween;
import com.leebrimelow.utils.Math2;
import com.theflashblog.fp10.SimpleZSorter;
import fl.motion.easing.Exponential;
import flash.display.*;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
public class Carousel extends Sprite
{
private var container:Sprite;
private var loader:URLLoader;
private var anglePer:Number;
private var mytooltip:MovieClip = new tooltip ;
public function Carousel()
{
init();
loadXML();
}
private function loadXML():void
{
loader = new URLLoader(new URLRequest("images.xml"));
loader.addEventListener(Event.COMPLETE, createCarousel);
}
private function createCarousel(e:Event):void
{
var xml:XML = new XML(e.target.data);
var list:XMLList = xml.image;
anglePer = (Math.PI*2) / list.length();
for (var i:int=0; i<list.length(); i++)
{
var mytooltip= new tooltip;
var imc:imCon = new imCon();
imc.buttonMode = true;
imc.alpha = .8;
imc.addEventListener(MouseEvent.CLICK, onClick);
imc.addEventListener(MouseEvent.MOUSE_OVER, onMOver);
imc.addEventListener(MouseEvent.MOUSE_OUT, onMOut);
imc.mouseChildren = false;
imc.doubleClickEnabled = true;
imc.addEventListener(MouseEvent.DOUBLE_CLICK, onDouble);
var l:Loader = new Loader();
l.x = -126;
l.y = -94;
l.load(new URLRequest(list[i].@src));
//var et:DisplayObject = l.content as MovieClip;
var toolText:String;
toolText = list[i]. @ tooltip;
if(toolText !=""){
mytooltip.tipText.text=toolText;
}
var info:String;
info = list[i]. @ content;
//trace(toolText,"tt");
imc.addChild(l);
imc.scaleX = .4;
imc.scaleY = .5;
imc.angle = (i * anglePer) - Math.PI / 2;
if (i>8 && i<37)
{
}
imc.x = Math.cos(imc.angle) * 550;
imc.z = Math.sin(imc.angle) * 550;
imc.rotationY = 360 / list.length() * - i;
container.addChild(imc);
mytooltip.x = imc.x-imc.width/2;
mytooltip.y = imc.y - 100;
mytooltip.alpha=0;
imc.addChild(mytooltip);
//et.addChild(mytooltip);
}
}
private function onClick(e:MouseEvent):void
{
//var et:DisplayObject = e.currentTarget as DisplayObject;
trace(e.currentTarget.name);
//e.currentTarget.alpha=1;
var tw:GTween = new GTween(container, 0.8, {rotationY:Math2.toDeg(e.currentTarget.angle+Math.PI/2), z:400},
{ease:Exponential.easeInOut});
}
private function onDouble(e:MouseEvent):void
{
trace("clicked twice");
}
private function onMOver(e:MouseEvent):void
{
//trace(e.currentTarget);
//mytooltip.tipText.text=e.currentTarget.et. @ tooltip;
/*mytooltip.x = e.currentTarget.mouseX;
mytooltip.y = e.currentTarget.mouseY - 25*/
//e.currentTarget.addChild(mytooltip);
moveTip();
e.currentTarget.mytooltip.alpha=1;//this throws an error as I can't seem to target the imc's child
e.currentTarget.alpha = 1;
}
private function onMOut(e:MouseEvent):void
{
e.currentTarget.alpha = .8;
}
function moveTip()
{
/*mytooltip.x = mouseX;
mytooltip.y = mouseY-20;*/
}
private function init():void
{
container = new Sprite();
container.x = 450;
container.y = 145;
container.z = 400;
addChild(container);
//cover.addEventListener(MouseEvent.CLICK, stageClick);
this.addEventListener(Event.ENTER_FRAME, loop);
}
/*private function stageClick(e:MouseEvent):void
{
var tw:GTween = new GTween(container, 0.8, {z:400}, {ease:Exponential.easeInOut});
}*/
private function loop(e:Event):void
{
SimpleZSorter.sortClips(container);
}
}
}
The tooltip(mc in library with a textfield) attaches ok(as can be shown if you leave their alpha=1 in the createCarousel function) , but accessing that tooltip(which I add as a child of the imc) I cant figure out how to do...I also don't know how to return the name of the clip on the doubleclick event--I just get an instance, so I wouldnt be able to display the content(desc)XML node...
Do I need to set up an array? Or how do I go about referencing the imc children?
Thanks so much,
---Yvette
Last edited by yvillicana; 11-21-2012 at 01:11 PM.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|