//Create the URLLOader instance
var myLoader:URLLoader = new URLLoader();
//the data will come as URL-encoded variables
myLoader.dataFormat = URLLoaderDataFormat.VARIABLES
//Load using an URLRequest, even beeing local
myLoader.load(new URLRequest("flash/index.php"))
//onLoad handler listener
myLoader.addEventListener(Event.COMPLETE, onDataLoad)
//add a listener for the complete event
function onDataLoad(evt:Event){
for(var i:uint=0; i<evt.target.data.cant; i++){
var mc_holder:MovieClip = new MovieClip();
mc_holder.name = "mc_holder"+i;
mc_holder.x = 30;
mc_holder.y = mc_holder.height+10;
//trace(mc_holder.y = mc_holder.height*i)
addChild(mc_holder);
var loader:Loader = new Loader()
loader.load(new URLRequest(evt.target.data["Image"+i]))
mc_holder.addChild(loader)
mc_holder.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
function mouseDownHandler(e:MouseEvent):void {
var my_thumb = e.target.name;
trace(my_thumb);
my_thumb.startDrag();
}
这给了我错误错误#1006:值不是函数。当我点击拖动
答案 0 :(得分:0)
您发布的代码似乎有语法错误,但我认为您的问题的解决方案应该是e.target.startDrag();
的调用。在您致电my_thumb.startDrag();
时,您正试图在startDrag
上调用一个不存在的函数e.target.name
。
另外,您可以替换
var my_thumb = e.target.name;
带
var my_thumb = e.target;
答案 1 :(得分:0)
您的代码中存在很多错误。你也试图用一种方法做太多。你解析你的数据,创建一个影片剪辑,添加一个加载器,加载一个图像然后调用加载器上的函数...我试图摆脱明显的错误,但毫无疑问你的代码可以通过分离来改善顾虑。
如果您将代码拆分为单独的方法,您的代码将更加灵活。更容易调试...你可以加载&amp;解析变量,在另一个函数中为您的设计准备XML数据,然后将显示逻辑留给另一个方法。
与此同时,这是你的错误代码
function onDataLoad(evt:Event)
{
for(var i:uint=0; i< evt.target.data.cant; i++)
{
var mc_holder:MovieClip = new MovieClip();
mc_holder.name = "mc_holder"+i;
mc_holder.x = 30;
mc_holder.y = mc_holder.height+10;
//trace(mc_holder.y = mc_holder.height*i);
addChild(mc_holder);
var loader:Loader = new Loader();
loader.load(new URLRequest(evt.target.data["Image"+i]));
mc_holder.addChild(loader)
mc_holder.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
}
}
function mouseDownHandler(e:MouseEvent):void
{
var my_thumb:MovieClip = e.target as MovieClip;
trace(my_thumb);
my_thumb.startDrag();
}