我知道有一些关于将AS2 SWF加载到AS3 SWF中的帖子,但没有提供解决方案!我有一个独立的图库 - 使用XML文件 - 我已加载到AS3 SWF中。
图库功能很好,但加载到AS3 SWF后,它不会改变主图像!我创建了一个新的AS3 SWF,并且只有代码将这个AS2库加载到AS3电影中,没有别的,并且在点击缩略图时仍然拒绝更改大图像。画廊几乎完全没法运行,它只是大图像无法正常工作。有人可以帮忙吗?这是我的AS2主要图库代码,是否有人发现可能导致错误的内容?
import mx.transitions.Tween;
import mx.transitions.easing.*;
var my_xml = new XML();
my_xml.ignoreWhite = true;
my_xml.onLoad = function(success){
if(success){
doGallery();
}
else{
null;
}
}
my_xml.load("xml/gallery.xml");
function doGallery(){
var imgTitles:Array = my_xml.firstChild.childNodes[0].attributes.imgtitles.split("|");
var numImgs:Number = my_xml.firstChild.childNodes[0].attributes.num;
var thumbprefix = my_xml.firstChild.childNodes[0].attributes.thumbprefix;
var largeprefix = my_xml.firstChild.childNodes[0].attributes.largeprefix;
var ext = "."+my_xml.firstChild.childNodes[0].attributes.ext;
var imgSets:Number = Math.ceil(numImgs/10);//max possible number of image sets
var desc:Array = my_xml.firstChild.childNodes[0].attributes.descriptions.split("|")
_parent.mySets = imgSets;
if(imgSets == 1){
_parent.btnNxt._visible = false;
}
_parent.imgNum = "1/"+numImgs;
_parent.imgHolder.imgAttach.loadMovie("gallery/"+largeprefix+"01"+ext);
for(var i:Number=0;i<numImgs;i++){
attachMovie("thumbframe", "thumb"+i, this.getNextHighestDepth(), {_x:(i * 20), _y:51});
var clip = eval("thumb"+i);
if(i == 0){clip._x = 39;}
else{clip._x = 90 * (i)+39;}
clip._y = 51;
_parent.txtsimon = imgTitles[0];
_parent.imgDescr = desc[0];
eval("thumb"+i).id = i+1;
if(imgTitles[i] == "" or imgTitles[i] == undefined){
clip.title = "Untitled Image";
}
else{
clip.title = imgTitles[i];
}
eval("thumb"+i).thumbhold.loadMovie("gallery/"+thumbprefix+"0"+eval("thumb"+i).id+ext);
eval("thumb"+(i)).onRelease = function(){
_parent.imgNum = this.id+"/"+numImgs;
var thumbid:Number = this.id;
var imgOut:Tween = new Tween(_parent.imgHolder, "_alpha", Regular.easeOut, _parent.imgHolder._alpha, 0, 0.4, true)
imgOut.onMotionFinished = function(){
_root.container.imgHolder.imgAttach.unloadMovie();
_root.container.imgHolder.imgAttach.loadMovie("gallery/"+largeprefix+"0"+thumbid+ext);
trace("gallery/"+largeprefix+"0"+thumbid+ext);
new Tween(_root.container.imgHolder, "_alpha", Regular.easeIn, 0, 100, 0.5, true);
}
mytitle = this.title;
_parent.txtsimon = mytitle;
_parent.imgDescr = this.descr;
_parent.btnDownloadImg.onRelease = function(){
getURL("gallery/"+largeprefix+"0"+thumbid+ext);
}
new Tween(activeThumb, "_x", Strong.easeOut, activeThumb._x, this._x, 1.5, true);
}
clip.onRollOver = function(){
new Tween(this, "_alpha", Strong.easeOut, this._alpha, 75, 1, true);
}
clip.onRollOut = function(){
new Tween(this, "_alpha", Strong.easeOut, this._alpha, 100, 1, true);
}
}
_parent.btnSlideShow.onRelease = function(){
new Tween(this._parent.slideOverlay, "_alpha", Strong.easeOut, 0, 100, 3, true);
}
}
_parent.btn_requestHighRes.onRelease = function(){
var rtitle:String = _parent.txtsimon.toString();
getURL("mailto:HIDDEN_EMAIL?subject=Toolkit High Res Request - "+rtitle);
}
我在大图像的源上运行了一个跟踪,它正在调用正确的图像。我卸载当前图像并加载到新图像中,但是仍然加载旧图像,就像它的缓存或者其他东西?这个问题似乎接近这个代码:
_root.container.imgHolder.imgAttach.unloadMovie();
_root.container.imgHolder.imgAttach.loadMovie("gallery/"+largeprefix+"0"+thumbid+ext);
trace("gallery/"+largeprefix+"0"+thumbid+ext);
上面的描述显示我正在调用正确的图像,但它根本不会加载!
我非常感谢所有评论,因为我已经多年来一直坐在这个评论上了!
西蒙
答案 0 :(得分:0)
将AVM1加载到AVM2(带有Actionscript 1.0 / 2.0的SWF到SWF Actionscript 3.0中) has some restrictions ,但我不认为您正在处理其中一个..
无论如何,结帐 this link 。
希望这会有所帮助。