Hola a todos/as :D

Estoy con AS desde hace un tiempecillo pero estoy estancado con un problema que no consigo solucionar. :?

Tengo una presentación programada a partir de un componente con AS 1.0 que ejecuto perfectamente en local, pero que al subirla al servidor no me carga parte del contenido del swf. El código que no me carga es el que incluyo entre #initclip 2 / #endinitclip de un Clip de Película Vacío en el fotograma 1, que carga dinámicamente todo su contenido (de un archivo XML y de Clips creados dinámicamente). Utilizo otros dos #initclip , que os adjunto.
Por precaución, e intentando evitar incompatibilidades, la publico en AS1 y Flash Player 6, pero ni así :shock:

Os paso el código por si veis en que me equivoco :

Código :

#initclip 0

MovieClip.prototype.loadClip = function(identity, instance, x, y, paramIncoming)
{
   initParam={param:paramIncoming};
    var depth   = this.nextDepth();
    var newClip = this.attachMovie(identity, instance, depth,initParam);

    newClip._x = x;
    newClip._y = y;

    return newClip;
}


MovieClip.prototype.makeCopy = function()
{
    var depth   = this.nextDepth();
    var newName = "copy" + depth;

    return this.duplicateMovieClip(newName, depth);
}


MovieClip.prototype.attachEvent = function(eventName, myFunction)
{
    this[eventName] = function()
    {
        myFunction(this);
    }
}


MovieClip.prototype.removeEvent = function(eventName)
{
    delete this[eventName];
}


MovieClip.prototype.removeAllEvents = function()
{
    // Remove all properties that begin with the word "on"

    for(property in this)
        if(property.toString().indexOf("on") == 0)
            this.removeEvent(property);
}


MovieClip.prototype.setMovieManager = function(movieManagerObject)
{

    MovieClip.movieManagerObject = movieManagerObject;
}


MovieClip.prototype.getMovieManager = function()
{
    return MovieClip.movieManagerObject; // See setMovieManager()
}


MovieClip.prototype.drawFlatRectangle = function(fillColor, x, y, wide, high)
{
    this.beginFill(0x000000,  100);

    var x2 = x + wide;
    var y2 = y + high;

    this.moveTo(x ,  y);
    this.lineTo(x2,  y);
    this.lineTo(x2, y2);
    this.lineTo(x , y2);
    this.lineTo(x ,  y);

    this.endFill();
   
   myColor = new Color(this);
   myColorTransform = new Object();
   myColorTransform = {ra:'100', rb:fillColor[0], ga:'100', gb:fillColor[1], ba:'100', bb:fillColor[2]};
   myColor.setTransform(myColorTransform);

}


MovieClip.prototype.newTextField = function(instance, x, y)
{
    var depth = this.nextDepth();
    return this.createTextField(instance, depth, x, y, 0, 0);
}


TextField.prototype.updateField = function(text, fontName, fontSize, fontColor, backColor)
{

    if(backColor == undefined)
        this.background = false;
    else
    {
       this.background      = true;
       this.backgroundColor = backColor;
    }

    var newFormat   = new TextFormat();
    newFormat.color = fontColor;
    newFormat.font  = fontName;
    newFormat.size  = fontSize;

    this.autoSize = true; // Ajusto el tamaño de los campos para mantener el texto 
   this.embedFonts = true;
   this.selectable = false;

    this.text = text;
    this.setTextFormat(newFormat);
}

MovieClip.prototype.nextDepth = function()
{
    MovieClip.nextDepthCounter++; // Class property.
    return MovieClip.nextDepthCounter;
}

#endinitclip

#initclip 1
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MenuClass.prototype = new MovieClip();
object.registerClass("MenuDepot", MenuClass);
function MenuClass() {
   this.itemTemp = "";
   this.itemActive = "";
   this.menuStatus = false;
   this.itemCount = 0;
   this.menuNum = ++this.constructor.count;
}
MenuClass.count = 0;
MenuClass.prototype.addMenuItem = function(name, posX, posY, sizeX, sizeY, itemColor, link) {
   
   var tempClip = this.loadClip("itemDepot", "item"+this.itemCount, posX, posY);
   tempClip.loadClip("AreaDepot", "itemArea", 0, 0);
   tempClip.loadClip("ButtonDepot", "itemButton", 0, 0);
   tempClip.loadClip("ContentDepot", "itemContent", this.base, 0);
   tempClip.newTextField("label", 0, sizeY-10);
   tempClip.label.updateField(name, "MenuFont", 10, 0x000000, backColor);
   tempClip.label._rotation = 270;
   
   tempClip.itemButton.attachEvent("onPress", this.clickMenuItem);

   tempClip.controlOpen = false;
   tempClip.num = this.itemCount;
   tempClip.link = link;

   tempClip.itemArea.drawFlatRectangle(itemColor, 0, 0, sizeX, sizeY);
   tempClip.itemButton.drawFlatRectangle(itemColor, 0, 0, sizeX, sizeY);

   itemParts = new Object();
   itemParts.menuItem = tempClip;
   this.itemList.push(itemParts);
   this.itemCount++;
};
MenuClass.prototype.onEnterFrame = function() {
   
   if (this.menuStatus) {
      for (x=0; x<=this.itemCount; ++x) {
         // set local names
         item = this.itemList[x].menuItem;
         prevItem = this.itemList[x-1].menuItem;
         // change pos _x
         item._x = prevItem._x+prevItem._width;
         // change _width
         if (item.controlOpen && item._width<this.area) {
            item.itemArea._width += this.vel;
         } else if (!item.controlOpen && item._width>this.base) {
            item.itemArea._width -= this.vel;
         }
      }

      if (this.itemActive.controlOpen && this.itemActive._width == this.area) {
         this.showSubMenu();
         this.showContent();
         this.menuStatus = false;
         // control action close
      } else if (!this.itemActive.controlOpen && this.itemActive._width == this.base) {
         this.menuStatus = false;
      }
   }
};
MenuClass.prototype.initSubMenu = function(num) {
   this["item"+num].controlOpen = true;
   this.menuStatus = true;
   this.itemActive = this["item"+num];
   this.itemTemp = this["item"+num];
};
MenuClass.prototype.showSubMenu = function() {
   if (this.menuNum == 1) {
      this._parent["subMenu"+this.itemActive.num]._visible = true;
   }
};
MenuClass.prototype.showContent = function() {
   if (this._visible && this.menuNum>1) {
      this.itemActive.itemContent.loadMovie(this.itemActive.link);
   } else if (this._visible && this.menuNum == 1) {
      this._parent["subMenu"+this.itemActive.num].itemActive.itemContent.loadMovie(this._parent["subMenu"+this.itemActive.num].itemActive.link);
   }
};
MenuClass.prototype.unLoadContent = function (item) {
   item.itemContent.unloadMovie();
}
MenuClass.prototype.hideSubMenus = function() {
   for (x=0; x<=this.itemCount; ++x) {
      this._parent["subMenu"+x]._visible = false;
   }
};


MainClass.prototype = new MenuClass();
object.registerClass("MainDepot", MainClass);
function MainClass() {
   this.itemList = [];
}
MainClass.prototype.clickMenuItem = function(menuItem) {

   if (!menuItem._parent._parent.menuStatus) {
      // set temp names
      nameTemp = menuItem._parent._parent;
      nameTemp.itemActive = menuITem._parent;
      nameTemp.itemTemp.controlOpen = false;
      nameTemp.menuStatus = true;
      // hide submenus
      if (nameTemp.menuNum == 1) {
         nameTemp.hideSubMenus();
      }

      if (nameTemp.itemTemp == "") {
         nameTemp.itemActive.controlOpen = true;
         nameTemp.itemTemp = nameTemp.itemActive;
      } else if (nameTemp.itemActive.num == nameTemp.itemTemp.num) {
         nameTemp.itemActive.controlOpen = false;
         nameTemp.itemTemp = "";
      } else if (nameTemp.itemActive.num>nameTemp.itemTemp.num) {
         nameTemp.itemActive.controlOpen = true;
         nameTemp.itemTemp = nameTemp.itemActive;
      } else if (nameTemp.itemActive.num<nameTemp.itemTemp.num) {
         nameTemp.itemActive.controlOpen = true;
         nameTemp.itemTemp = nameTemp.itemActive;
      }
   }
};

object.registerClass("SubDepot", SubClass);
function SubClass() {
   this._visible = false;
   this.itemList = [];
}
SubClass.prototype.clickMenuItem = function(menuItem) {
   
   if (!menuItem._parent._parent.menuStatus) {
      nameTemp = menuItem._parent._parent;
      nameTemp.itemActive = menuITem._parent;
      nameTemp.itemTemp.controlOpen = false;
      nameTemp.menuStatus = true;
      lastSubItem = nameTemp.itemCount-1;
      
      if (nameTemp.itemActive.num == nameTemp.itemTemp.num) {
         nameTemp["item"+lastSubItem].controlOpen = true;
         nameTemp.itemTemp = nameTemp["item"+lastSubItem];
      } else if (nameTemp.itemActive.num>nameTemp.itemTemp.num) {
         nameTemp.itemActive.controlOpen = true;
         nameTemp.unLoadContent(nameTemp.itemTemp);
         nameTemp.itemTemp = nameTemp.itemActive;
      } else if (nameTemp.itemActive.num<nameTemp.itemTemp.num) {
         nameTemp.itemActive.controlOpen = true;
         nameTemp.unLoadContent(nameTemp.itemTemp);
         nameTemp.itemTemp = nameTemp.itemActive;
      }
   }
};

#endinitclip


#initclip 2  //Código del clip vacío del fotograma 1
function MenuInit(){
   var Register_1_ = this;
   Register_1_.base = 15;
   Register_1_.menuItems = [];
   Register_1_.GetXMLContent(Register_1_.source);
}
MenuInit.prototype = new MovieClip();
Object.registerClass("MenuBarColor", MenuInit);
MenuInit.prototype["GetXMLContent"] = function (src){
   var Register_1_ = this;
   Register_1_.tempXML = new XML();
   Register_1_.tempXML.load(src);
   Register_1_.tempXML.ignoreWhite = true;
   Register_1_.tempXML.parent = Register_1_;
   Register_1_.tempXML.onLoad = Register_1_.getXMLLoadHandler;
}
MenuInit.prototype["getXMLLoadHandler"] = function (success){
   var Register_1_ = this;
   if(success){
      itemList = Register_1_.firstChild.childNodes;
      itemListLen = itemList.length;
      i = 0;
      while(i < itemListLen){
         activeList = itemList[i].childNodes;
         activeItemLen = activeList.length;
         itemObj = {};
         itemObj.name = itemList[i].attributes.name;
         itemObj.barColor = itemList[i].attributes.barColor.split(",");
         itemObj.barColor[0] = Number(itemObj.barColor[0]);
         itemObj.barColor[1] = Number(itemObj.barColor[1]);
         itemObj.barColor[2] = Number(itemObj.barColor[2]);
         if(itemList[i].attributes.action != undefined){
            itemObj.action = itemList[i].attributes.action;
         }
         itemObj.sub = [];
         j = 0;
         while(j < activeItemLen){
            subItemObj = {};
            subItemObj.name = activeList[j].attributes.name;
            subItemObj.action = activeList[j].attributes.action;
            itemObj.sub.push(subItemObj);
            j++;
         }
         Register_1_.parent.menuItems.push(itemObj);
         i++;
      }
      Register_1_.parent.constructMenu();
   } else {
      trace("[getXMLLoadHandler] ---Menu content failed to load");
   }
}
MenuInit.prototype["constructMenu"] = function (){
   var Register_1_ = this;
   colorNum = Register_1_.menuItems.length;
   Register_1_.loadClip("MainDepot", "menu", 0, 0);
   Register_1_.menu.area = Register_1_.area;
   Register_1_.menu.base = Register_1_.base;
   Register_1_.menu.vel = Register_1_.vel;
   x = 0;
   while(x < colorNum){
      Register_1_.menu.addMenuItem(Register_1_.menuItems[x].name, x * Register_1_.base, 0, Register_1_.base, Register_1_.hight, Register_1_.menuItems[x].barColor);
      subNum = Register_1_.menuItems[x].sub.length;
      Register_1_.loadClip("SubDepot", ("subMenu" + x), (x + 1) * Register_1_.base, 0);
      Register_1_[("subMenu" + x)].area = Register_1_.area;
      Register_1_[("subMenu" + x)].base = Register_1_.base;
      Register_1_[("subMenu" + x)].vel = Register_1_.vel;
      y = 0;
      while(y < subNum){
         Register_1_.menuItems[x].barColor[0] +=  10;
         Register_1_.menuItems[x].barColor[1] +=  10;
         Register_1_.menuItems[x].barColor[2] +=  10;
         Register_1_[("subMenu" + x)].addMenuItem(Register_1_.menuItems[x].sub[y].name, y * Register_1_.base, 0, Register_1_.base, Register_1_.hight, Register_1_.menuItems[x].barColor, Register_1_.menuItems[x].sub[y].action);
         y++;
      }
      Register_1_[("subMenu" + x)].area -=  Register_1_.base * y;
      Register_1_[("subMenu" + x)].base = Register_1_.base;
      Register_1_[("subMenu" + x)].initSubMenu(y - 1);
      x++;
   }
}
#endinitclip 
:crap:

Muchas gracias por vuestro tiempo, hacéis un gran trabajo.

:)

[SWAT] Por favor, poner etiquetas code [/SWAT]