错误#1006:值不是函数

时间:2010-09-30 07:53:58

标签: flash flash-cs3

//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:值不是函数。当我点击拖动

2 个答案:

答案 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();

    }