2010-09-17 9 views
1

je le code suivant:AS2 Attachez Film et LoadMovie

var theItems:String = "4 3 6 19 20 40 41 4 3 6 19 20 40 41" 

var titems = theItems.split(" "); 

var nextLine = 0; 
var LastSlotID = 0; 
var LastX = 0; 
var LastY = 0; 
var slotsM = 0; 
for (var i in titems){ 
     var thisitem:Number = titems[i]; 
     ThisSlotID = LastSlotID + 1; 
     if(LastSlotID == 0){ 
      var thisSlot = Slots.attachMovie("InventorySlot", "slot"+ThisSlotID, Slots.getNextHighestDepth(), {itemID:thisitem});// the start slot 
      thisSlot._y = LastY; 
      thisSlot._x = LastX; 
      LastSlotID = ThisSlotID + 1; 
      slotsM = slotsM + 1; 
     // loadMovie("http://mmysite.com/"+thisitem+".swf", thisSlot); 
      //delete mySlot 
     } else { 
      var thisSlot = Slots.attachMovie("InventorySlot", "slot"+ThisSlotID, Slots.getNextHighestDepth(), {itemID:thisitem});// the start slot 
      //thisSlot._y = LastY + ; // do this ONLY if a 4th slot 
      if(slotsM == 3){ 
      // trace("removing" +slotsM) 
       thisSlot._y = LastY + 62.9; 
       slotsM = 1; 
       thisSlot._x = 0; 
       LastY = thisSlot._y 
       LastX = thisSlot._x 
      } else { 
       //trace(slotsM) 
       thisSlot._x = LastX + 84.9; 
      thisSlot._y = LastY 

      LastSlotID = ThisSlotID + 1; 
      slotsM = slotsM + 1; 

      LastY = thisSlot._y; 
      LastX = thisSlot._x; 
      } 


      //delete mySlot 
     } // end of slot if 0 or not 
     loadMovie("http://mysite.com/"+thisitem+".swf", thisSlot); 
     var mySlot = eval("slot"+ThisSlotID); 
     mySlot.onPress = function(){ 
       trace("" + mySlot['itemID']); 
       trace(mySlot) 
     } 

} 

Dans le cadre 0. Les fonds souverains sont le chargement et je les vois dans les fentes MC. mais quand je clique sur le swf chargé dans la fente, il ne trace pas quoi que ce soit

+0

ce qui est classe à sous? Quel est votre code complet? Où vous ajoutez Slot à la scène? – Eugene

+0

Cela peut être lié à la façon dont vous utilisez 'eval()' pour obtenir mySlot. Pourquoi ne pas simplement ajouter l'écouteur sur thisSlot? Essayez aussi de tracer quelque chose comme "Foo". Peut-être que c'est juste un problème de portée. –

Répondre

0

changement

loadMovie("http://mysite.com/"+thisitem+".swf", thisSlot); 
var mySlot = eval("slot"+ThisSlotID); 
    mySlot.onPress = function(){ 
      trace("" + mySlot['itemID']); 
      trace(mySlot)  
    } 

à

var mySlot = loadMovie("http://mysite.com/"+thisitem+".swf", thisSlot); 
     mySlot.onPress = function(){ 
      trace("" + mySlot['itemID']); 
      trace(mySlot)  
}