我试图加载2图像到我的闪存文件,但得到一个错误-新的这个AS3的马拉基,任何帮助将不胜感激!
获取错误:51151:名称空间内部的定义请求与定义请求存在冲突。
var myImage:String = dynamicContent.Profile[0].propImage.Url;
var myImage2:String = dynamicContent.Profile[0].prop2Image.Url;
var myImageLoader:StudioLoader = new StudioLoader();
var request:URLRequest = new URLRequest(enabler.getUrl(myImage));
myImageLoader.load(request);
myImageLoader.x =17;
myImageLoader.y = 0;
var myImageLoader2:StudioLoader = new StudioLoader();
var request:URLRequest = new URLRequest(enabler.getUrl(myImage2));
myImageLoader.load(request);
myImageLoader.x =17;
myImageLoader.y = 0;
if(this.currentFrame == 1) {
addChildAt(myImageLoader, 2);
}
if(this.currentFrame == 2) {
addChildAt(myImageLoader2, 2);
}发布于 2014-12-20 13:47:29
将重复代码移动到自己的函数中而不是复制+粘贴通常是个好主意:
function loadImage(file:String, x:Number, y:Number):StudioLoader{
var myImageLoader:StudioLoader = new StudioLoader();
var request:URLRequest = new URLRequest(file);
myImageLoader.load(request);
myImageLoader.x = x;
myImageLoader.y = y;
return myImageLoader;
}
addChild(loadImage(enabler.getUrl(myImage1),17,0));
addChild(loadImage(enabler.getUrl(myImage2),17,0));这不仅为您提供了更好的结构化代码,而且还修复了重复的变量定义问题,因为在函数中本地定义的内容保留在函数中。
这可能提供一些洞察力:
http://www.adobe.com/devnet/actionscript/learning/as3-fundamentals/functions.html
发布于 2014-12-20 12:27:27
您不能创建与现有变量同名的新变量,在您的例子中,我指的是您的URLRequest request,因此为了避免这种类型的错误,您可以这样做:
var myImageLoader2:StudioLoader = new StudioLoader();
// assing a new URLRequest to an existing var
request = new URLRequest(enabler.getUrl(myImage2));
// here you want use the myImageLoader2, not myImageLoader
myImageLoader2.load(request);
myImageLoader2.x =17;
myImageLoader2.y = 0;或:
var myImageLoader2:StudioLoader = new StudioLoader();
// create a new URLRequest var, so the name should be different
var request2:URLRequest = new URLRequest(enabler.getUrl(myImage2));
// here you want use the myImageLoader2, not myImageLoader
myImageLoader2.load(request2);
myImageLoader2.x =17;
myImageLoader2.y = 0;发布于 2014-12-22 06:14:08
此外,我在第二个块中注意到,您声明了myImageLoader2,但是您随后使用原始的myImageLoader来执行加载请求。因此,即使您声明了一个新的URLRequest,也不会同时加载两个图像。
阿克莫佐的解决方案已经纠正了这一点。
https://stackoverflow.com/questions/27580023
复制相似问题