Hey all,
I have thumbs loaded via XML which scroll using a custom scroll movie clip.
The problem is that when i just click on the scroll movie clip, the thumbs “jump up” somewhat, then when I scroll (drag)down, the thumbs (contained within “main_container”) scroll beyond the mask until no thumbs are visible. When I drag back up, the thumbs scroll, but fall short of the first thumb by maybe three thumbs…
import caurina.transitions.Tweener;
var thumb_width:Number;
var thumb_height:Number;
var thumbs_x:Number;
var thumbs_y:Number;
var video_x:Number;
var video_y:Number;
var my_videos:XMLList;
var my_total:Number;
var main_container:Sprite;
var thumbs:Sprite;
var titles:Sprite;
var my_player:FLVPlayback;
var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.load (new URLRequest("playlist.xml"));
myXMLLoader.addEventListener (Event.COMPLETE, processXML);
function processXML (e:Event):void {
var myXML:XML = new XML(e.target.data);
thumb_width = myXML.@THUMB_WIDTH;
thumb_height = myXML.@THUMB_HEIGHT;
thumbs_x = myXML.@THUMBS_X;
thumbs_y = myXML.@THUMBS_Y;
video_x = myXML.@VIDEO_X;
video_y = myXML.@VIDEO_Y;
my_videos = myXML.VIDEO;
my_total = my_videos.length();
makeContainers ();
callThumbs ();
makePlayer ();
}
function makeContainers ():void {
main_container = new Sprite();
addChild (main_container);
thumbs = new Sprite();
thumbs.addEventListener (MouseEvent.CLICK, playVideo);
thumbs.addEventListener (MouseEvent.MOUSE_OVER, onOver);
thumbs.addEventListener (MouseEvent.MOUSE_OUT, onOut);
thumbs.x = thumbs_x;
thumbs.y = thumbs_y;
thumbs.buttonMode = true;
main_container.addChild (thumbs);
titles = new Sprite();
titles.x = thumbs_x;
titles.y = thumbs_y;
main_container.addChild (titles);
main_container.mask=thumb_holder;
main_container.x=track.x+13;
main_container.y=track.y;
trace("main_container height"+main_container.height);
}
function callThumbs ():void {
trace ("main_container Y pos"+main_container.y);
for (var i:Number = 0; i < my_total; i++) {
var thumb_url = my_videos*.@THUMB;
var thumb_loader = new Loader();
thumb_loader.name = i;
thumb_loader.load (new URLRequest(thumb_url));
thumb_loader.contentLoaderInfo.addEventListener (Event.COMPLETE, thumbLoaded);
thumb_loader.y = (thumb_height+10)*i;
var thumb_title = my_videos*.@TITLE;
var title_txt:TextField = new TextField();
title_txt.text = thumb_title;
title_txt.y = thumb_loader.y;
title_txt.x = thumb_width + 10;
title_txt.width = thumb_width;
title_txt.height = thumb_height;
title_txt.wordWrap = true;
title_txt.textColor=0xffffff;
titles.addChild (title_txt);
}
}
function thumbLoaded (e:Event):void {
var my_thumb:Loader = Loader(e.target.loader);
thumbs.addChild (my_thumb);
}
function makePlayer ():void {
my_player = new FLVPlayback();
my_player.skin ="SkinOverPlaySeekMute.swf";
my_player.skinBackgroundColor = 0xAEBEFB;
my_player.skinBackgroundAlpha = 0.5;
my_player.x = video_x;
my_player.y = video_y;
my_player.width = 480;
my_player.height = 270;
//main_container.addChild (my_player);
stage.addChild (my_player);
my_player.source = my_videos[0].@URL;
}
function playVideo (e:MouseEvent):void {
var video_url = my_videos[e.target.name].@URL;
my_player.source = video_url;
}
function onOver (e:MouseEvent):void {
var my_thumb:Loader = Loader(e.target);
my_thumb.alpha = 0.5;
}
function onOut (e:MouseEvent):void {
var my_thumb:Loader = Loader (e.target);
my_thumb.alpha = 1;
}
//Scroller//////////////////////////////////
var minScroll:Number = 0;
var maxScroll:Number = track.height-handler.height;
var draging:Boolean = false;
var bounds:Rectangle = new Rectangle(handler.x, handler.y, 0, maxScroll);
//var rect:Rectangle = new Rectangle(0,0,47,0);//x,y,width,height
handler.buttonMode = true;
handler.addEventListener(MouseEvent.MOUSE_DOWN,beginDrag);
function beginDrag(event:MouseEvent):void {
handler.startDrag(false,bounds);
draging = true;
handler.addEventListener(Event.ENTER_FRAME,checkingProgress);
stage.addEventListener(MouseEvent.MOUSE_UP,endDrag);
}
function endDrag(event:MouseEvent):void {
handler.stopDrag();
draging = false;
trace ("main_container Y pos"+main_container.y);
}
//trace("my_total"+my_total);
function checkingProgress(event:Event):void {
var percent:Number = handler.y/maxScroll;
if (draging) {
Tweener.addTween(main_container,{y:(-percent*(main_container.height-thumb_holder.height)),time:1});
}
}
I believe the problem is here:
Tweener.addTween(main_container,{y:(-percent*(main_container.height-thumb_holder.height)),time:1});
Any help would be appreciated
Thanks
7