经典论坛's Archiver

needi 发表于 2008-7-2 09:25

紧急求助各版主,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]

SUNXINZHE 发表于 2008-7-2 09:47

- <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里

needi 发表于 2008-7-2 10:01

那我把as代码贴上来吧,分3帧,分别代表材质作品、模型作品、和其他作品,第一帧都显示正常,其他2帧都显示错误,如果把后面的2帧分别提到第一帧都没有错误,这是不是有个缓存问题,加载完上一帧后缓存没清理阿

xml我从少修改到多的,最下面的只有4个,但是还是显示n多!
loading的问题我还是不大明白,应该加在什么地方,请指导谢谢!

needi 发表于 2008-7-2 10:07

截图

点选左栏分别为1、2、3帧  动画作品没添加

needi 发表于 2008-7-2 10:08

第一帧代码

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");

needi 发表于 2008-7-2 10:09

第二帧代码



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");

needi 发表于 2008-7-2 10:10

第3帧和第二帧一样就是把上面的childNodes[1]改成了childNodes[2]

start1015 发表于 2008-7-2 11:01

顶下,大家帮忙啊,偶也在等

needi 发表于 2008-7-2 12:59

顶上!!!!!!!!!!!!!!!!!

needi 发表于 2008-7-3 08:28

:o :) :( :D ;-) :p :cool: :rolleyes: :mad: :confused: -_!!

yxljames 发表于 2008-7-3 11:06

由于不是版主;简单回答下
要显示Loading进展需要设置lister
这个可以用自带的Loader组件和Progress组件实现

needi 发表于 2008-7-3 13:53

不知版主都干嘛去了,能不能帮俺看看第一个问题怎么解决啊!

needi 发表于 2008-7-7 13:46

没解决,继续顶!!!!!!!!!

页: [1]



Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.