紧急求助各版主,flash作品展示问题,附源码
自己憋了一个月才把这个作品展示的代码弄完,因为是初学者,大部分都是超来的代码,基本的功能都已经实现了,演示地址:[url]http://www.qdxwl.com/show2.swf[/url]
现在新的问题是,
1.加载xml的内容长度不一样,但是右侧缩略图每个都显示N多,请各大高手帮忙修改下,小弟感激不尽!附上源码给能用到的朋友使用!
2.怎样在加载大图片的时候显示%比,现在点缩略图加载大图的时候是空白,或者加载个loading图片也可以!
源文件下载:[url]http://www.qdxwl.com/show2.fla[/url]
xml地址:[url]http://www.qdxwl.com/zuopin.xml[/url] - <zuopin>
<Menu linkURL="zuopin/16.jpg" imgURL="zuopin/1_1.jpg" />
<Menu linkURL="zuopin/11.jpg" imgURL="zuopin/1_2.jpg" />
<Menu linkURL="zuopin/12.jpg" imgURL="zuopin/1_3.jpg" />
<Menu linkURL="zuopin/13.jpg" imgURL="zuopin/1_4.jpg" />
<Menu linkURL="zuopin/15.jpg" imgURL="zuopin/1_5.jpg" />
<Menu linkURL="zuopin/16.jpg" imgURL="zuopin/1_1.jpg" />
<Menu linkURL="zuopin/11.jpg" imgURL="zuopin/1_2.jpg" />
<Menu linkURL="zuopin/12.jpg" imgURL="zuopin/1_3.jpg" />
<Menu linkURL="zuopin/13.jpg" imgURL="zuopin/1_4.jpg" />
<Menu linkURL="zuopin/15.jpg" imgURL="zuopin/1_5.jpg" />
<Menu linkURL="zuopin/16.jpg" imgURL="zuopin/1_1.jpg" />
<Menu linkURL="zuopin/11.jpg" imgURL="zuopin/1_2.jpg" />
<Menu linkURL="zuopin/12.jpg" imgURL="zuopin/1_3.jpg" />
<Menu linkURL="zuopin/13.jpg" imgURL="zuopin/1_4.jpg" />
<Menu linkURL="zuopin/15.jpg" imgURL="zuopin/1_5.jpg" />
<Menu linkURL="zuopin/16.jpg" imgURL="zuopin/1_1.jpg" />
<Menu linkURL="zuopin/11.jpg" imgURL="zuopin/1_2.jpg" />
<Menu linkURL="zuopin/12.jpg" imgURL="zuopin/1_3.jpg" />
<Menu linkURL="zuopin/13.jpg" imgURL="zuopin/1_4.jpg" />
<Menu linkURL="zuopin/15.jpg" imgURL="zuopin/1_5.jpg" />
一看你的XML就有问题,你这样重复写,右侧缩略图当然每个都显示N多,这是第一个问题
至于第二个问题,我没FLASH9,达不开,但初步估计也不过就是读取XML上有问题,还有你要做LOADING,用Moviecliploader 加动作在 onprogress里 那我把as代码贴上来吧,分3帧,分别代表材质作品、模型作品、和其他作品,第一帧都显示正常,其他2帧都显示错误,如果把后面的2帧分别提到第一帧都没有错误,这是不是有个缓存问题,加载完上一帧后缓存没清理阿
xml我从少修改到多的,最下面的只有4个,但是还是显示n多!
loading的问题我还是不大明白,应该加在什么地方,请指导谢谢!
截图
点选左栏分别为1、2、3帧 动画作品没添加 第一帧代码stop();
fscommand ("allowscale",false);
step = 1;
speed = 10;
var smallPicWidth = 68;
var smallPicHeight = 64;
var bigPicWidth = 574;
var bigPicHeight = 358;
var myXML:XML = new XML();//定义新的xml
var myArray:Array = new Array();//定义数组
myXML.ignoreWhite = true;//忽略空白
myXML.onLoad = function (ok){
if(ok){
_global.gap = myXML.firstChild.attributes.gap;
item = myXML.firstChild.firstChild.childNodes;
for(i=0;i<item.length;i++){ //遍历xml
var tempObj = myXML.firstChild.firstChild.childNodes[i].attributes;
myArray.push(
{
linkURL:tempObj.linkURL,
imgURL:tempObj.imgURL
}
)
//trace (myArray);
}
drawBar();
}
}
function drawBar(){
for (var i=0;i<myArray.length;i++){
var picLoaderTemp = picBar.createEmptyMovieClip ("picLoader" + i, i + 1);
var picCounterTemp = picBar.createEmptyMovieClip ("picCounter" + i, i + 10001);
picCounterTemp.id = i;
picLoaderTemp._x = 10;
picLoaderTemp._y = smallPicHeight * i + 20;
picLoaderTemp.loadMovie (myArray [i].imgURL);
picCounterTemp.onEnterFrame = function ()
{
var tempName = picBar ["picLoader" + this.id];
if (tempName._width > 0)
{
var tempScale = Math.min (smallPicWidth / tempName._width, smallPicHeight / tempName._height)
tempName._width = tempScale * tempName._width
tempName._height = tempScale * tempName._height;
tempName.onPress = function ()
{
var tempNum = this._name.slice (9);
textArea.contentText.text = myArray [tempNum].imgText;
drawShow (myArray [tempNum].linkURL);
}
delete picLoader.onEnterFrame;
}
}
}
}
function drawShow (a)
{
picShow.loadMovie (a);
var picShow = this.createEmptyMovieClip ("picCounter", 60000);
picCounter.onEnterFrame = function ()
{
if (picShow._width > 0)
{
var tempScale = Math.min (bigPicWidth / picShow._width , bigPicHeight / picShow._height);
picShow._width = tempScale * picShow._width;
picShow._height = tempScale * picShow._height;
picShow._x = (bigPicWidth+20 - picShow._width) / 2 + smallPicWidth+20;
picShow._y = (bigPicHeight - picShow._height) / 2+35;
picShow.onPress = function ()
{
getURL (a, "_blank");
}
delete picCounter.onEnterFrame;
}
}
}
picBar.onEnterFrame = function ()
{
if (_xmouse < smallPicWidth+20)
{
picBar._y -= (_ymouse - Stage.height/ 2)/10;
if (picBar._y > 0)
{
picBar._y = 0;
} else if (picBar._y <= Stage.height - picBar._height-20)
{
picBar._y = Stage.height - picBar._height-20;
}
}
}
myXML.load("zuopin.xml"); 第二帧代码
fscommand ("allowscale",false);
step = 1;
speed = 10;
var smallPicWidth = 68;
var smallPicHeight = 64;
var bigPicWidth = 574;
var bigPicHeight = 358;
var myXML:XML = new XML();//定义新的xml
var myArray:Array = new Array();//定义数组
myXML.ignoreWhite = true;//忽略空白
myXML.onLoad = function (ok){
if(ok){
_global.gap = myXML.firstChild.attributes.gap;
item = myXML.firstChild.childNodes[1].childNodes;
for(i=0;i<item.length;i++){ //遍历xml
var tempObj = myXML.firstChild.childNodes[1].childNodes[i].attributes;
myArray.push(
{
linkURL:tempObj.linkURL,
imgURL:tempObj.imgURL
}
)
//trace (myArray);
}
drawBar();
}
}
function drawBar(){
for (var i=0;i<myArray.length;i++){
var picLoaderTemp = picBar.createEmptyMovieClip ("picLoader" + i, i + 1);
var picCounterTemp = picBar.createEmptyMovieClip ("picCounter" + i, i + 10001);
picCounterTemp.id = i;
picLoaderTemp._x = 10;
picLoaderTemp._y = smallPicHeight * i + 20;
picLoaderTemp.loadMovie (myArray [i].imgURL);
picCounterTemp.onEnterFrame = function ()
{
var tempName = picBar ["picLoader" + this.id];
if (tempName._width > 0)
{
var tempScale = Math.min (smallPicWidth / tempName._width, smallPicHeight / tempName._height)
tempName._width = tempScale * tempName._width
tempName._height = tempScale * tempName._height;
tempName.onPress = function ()
{
var tempNum = this._name.slice (9);
textArea.contentText.text = myArray [tempNum].imgText;
drawShow (myArray [tempNum].linkURL);
}
delete picLoader.onEnterFrame;
}
}
}
}
function drawShow (a)
{
picShow.loadMovie (a);
var picShow = this.createEmptyMovieClip ("picCounter", 60000);
picCounter.onEnterFrame = function ()
{
if (picShow._width > 0)
{
var tempScale = Math.min (bigPicWidth / picShow._width , bigPicHeight / picShow._height);
picShow._width = tempScale * picShow._width;
picShow._height = tempScale * picShow._height;
picShow._x = (bigPicWidth+20 - picShow._width) / 2 + smallPicWidth+20;
picShow._y = (bigPicHeight - picShow._height) / 2+35;
picShow.onPress = function ()
{
getURL (a, "_blank");
}
delete picCounter.onEnterFrame;
}
}
}
picBar.onEnterFrame = function ()
{
if (_xmouse < smallPicWidth+20)
{
picBar._y -= (_ymouse - Stage.height/ 2)/10;
if (picBar._y > 0)
{
picBar._y = 0;
} else if (picBar._y <= Stage.height - picBar._height-20)
{
picBar._y = Stage.height - picBar._height-20;
}
}
}
myXML.load("zuopin.xml"); 第3帧和第二帧一样就是把上面的childNodes[1]改成了childNodes[2] 顶下,大家帮忙啊,偶也在等 顶上!!!!!!!!!!!!!!!!! :o :) :( :D ;-) :p :cool: :rolleyes: :mad: :confused: -_!! 由于不是版主;简单回答下
要显示Loading进展需要设置lister
这个可以用自带的Loader组件和Progress组件实现 不知版主都干嘛去了,能不能帮俺看看第一个问题怎么解决啊! 没解决,继续顶!!!!!!!!!
页:
[1]