2010-09-30 20 views
0

//Create the URLLOader instance var myLoader:URLLoader = new URLLoader();Erreur # 1006: la valeur n'est pas une fonction

//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(); 

      } 

This gives me error Error #1006: value is not a function. when i click on drag

Répondre

0

You posted code seems to have syntactical errors, but I think the solution for your problem should be the call of e.target.startDrag();. Avec votre appel de my_thumb.startDrag(); vous essayez d'appeler une fonction startDrag sur e.target.name qui n'existe pas.

Alternativly vous pouvez remplacer

var my_thumb = e.target.name; 

avec

var my_thumb = e.target; 
0

Il y a beaucoup d'erreurs dans votre code. Vous essayez aussi d'en faire trop avec une seule méthode. Vous analysez vos données, créez un clip, ajoutez un chargeur, chargez une image puis appelez une fonction sur le chargeur ... J'ai essayé de me débarrasser des erreurs évidentes, mais il ne fait aucun doute que votre code pourrait être amélioré en séparant préoccupations.

Si vous divisez votre code dans des méthodes distinctes, votre code sera plus souple & beaucoup plus facile à déboguer trop ... Vous pouvez charger & analyser vos variables, préparez vos données XML dans une autre fonction pour vos conceptions, laissez alors le afficher la logique à une autre méthode.

En attendant, voici votre code avec moins d'erreurs

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

    }