8
好吧,我的头脑在这个问题上令人难以置信。我知道这可能看起来像一个简单的问题,我不明白为什么我不能弄清楚,但我不能和我放弃。这里的问题:AS3设置雪碧容器的宽度和高度
我有一个精灵容器应该保存一串缩略图视频。我可以用所有的视频和整个工程填充容器,但很明显,如果我添加一堆视频将超过Flash文档的大小,所以我需要添加一个UIScrollBar(我这样做)现在滚动条目标被设置为容器,但不允许我滚动,如果我更正这是因为容器没有设置高度。所以我试图设置这个容器的高度,但第二我试着设置高度,甚至宽度我所有我的缩略图能够看到的都消失了!就好像它的大小被设置为0时,它甚至没有试图将它设置为指定的大小只是为了测试而没有。反正继承人我的代码,如果任何人都可以帮忙,我真的很感激它!提前致谢!
import fl.controls.UIScrollBar;
var videoList:XMLList;
var numVideos:Number;
var current_Video:Number = 0;
var video_position:Number;
var video_paused:Boolean;
var xmlPlaylist:String;
//XML File setup
var playlist_xml:XML;
var myLoader:URLLoader = new URLLoader();
//Playlist setup
var thumb_width:Number;
var thumb_height:Number;
var thumbs_x:Number;
var thumbs_y:Number;
var main_container:Sprite;
var thumbs:Sprite;
var scrollbar:UIScrollBar;
//Loader Data
this.loaderInfo.addEventListener(Event.COMPLETE, loaderComplete);
function loaderComplete(e:Event):void
{
var myQueryStrings = this.loaderInfo.parameters;
xmlPlaylist = myQueryStrings.pList;
myLoader.load(new URLRequest(xmlPlaylist + "?uniq=" + new Date().getTime()));
}
myLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void {
playlist_xml = new XML(e.target.data);
numVideos = playlist_xml.video.length();
videoList = playlist_xml.video;
thumb_width = [email protected]_width;
thumb_height = [email protected]_height;
thumbs_x = [email protected]_x;
thumbs_y = [email protected]_y;
current_Video = Math.round(Math.random()*(numVideos-1))+1;
current_Video--;
startPlayer();
}
function startPlayer()
{
makeContainers();
callThumbs();
setVideo(current_Video);
}
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.width = thumb_width;
thumbs.height = (thumb_height + 11) * 3;
thumbs.buttonMode = true;
main_container.addChild(thumbs);
scrollbar = new UIScrollBar();
scrollbar.x = thumbs_x + thumb_width + 2;
scrollbar.y = thumbs_y;
scrollbar.setSize(25, (thumb_height + 11) * 3);
scrollbar.visible = true;
scrollbar.scrollTarget = thumbs;
main_container.addChild(scrollbar);
}
function callThumbs():void
{
for (var i:Number = 0; i (less than) numVideos; i++) //For some reason Stack Overflow isnt allowing me to put the symbol less than so i just typed it in...
{
var thumb_url = videoList[i][email protected];
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 + 11) * i;
}
}
function thumbLoaded(e:Event):void
{
var my_thumb:Loader = Loader(e.target.loader);
thumbs.addChild(my_thumb);
}
function playVideo(e:MouseEvent):void
{
setVideo(e.target.name);
}
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;
}
function setVideo(current_Video)
{
var display:String = videoList[current_Video][email protected];
var video:String = videoList[current_Video][email protected];
txt_Display.text = display;
flvPlayer.source = video;
}
stop();
我发现一个线程关于这个和你说的话被提到,所以我也试图设置高度和宽度后,它是填充缩略图,我得到了同样的结果......任何建议,为什么这可能是?只是让你知道我做了什么:我把宽度和高度放到一个函数中,并在callThumbs()过程之后调用这个函数。 – 2011-02-27 16:59:57
正如我所看到的,callThumbs只是开始加载,它不会立即完成。您可以在thumbLoaded()后安全地调整大小。 – alxx 2011-02-28 07:26:08