Jerarquías
1 seguidor
Bueno, me estey comiendo la cabeza con esto, el tema es que tengo esta función
<code>function mostrar() {
_root[target+contador+"_mc"]._visible = true;
_root[target+contador+"_mc"].gotoAndPlay(1);
}
</code>
pero no quiero usar el _root, por dos razones, porque la película la cargo dentro de otra, y porque no puedo utilizar _lockroot (no se porque pero uso _droptarget y si bloqueo el root no me va el droptarget), usease, mi pregunta es ¿como sustituyo _root?.
He probado de todo, incluso cosas que no tienen razón de ser, this, this._parent, _parent... y ninguna va, tampoco _parent._parent y similares :)
please help!!!
Usuario desconocido
Ok, gracias por la respuesta :) creo que era un problema con un setInterval que me tocaba un poco las narices.
elsuricatorojo
Pues todo depende desde donde esté la función, ya que desde esa "localización" deberás realizar la llamada relativa.
Me explico:
Si la función está en (asumiendo que solo utilizas un nivel _level0):
_level0.menu_mc
...y quieres atacar a algo que está en:
_level0.opcion1_mc
... podrás acceder a esa instancia utilizando:
_parent.opcion1_mc
Si por el contraio tu funcion está en:
_level0.contenedor.menu_mc (es decir un nivel mas profundo)
...podrás acceder mediante:
_parent._parent.opcion1_mc
Si lo que tienes es un nlio de co***nes a nivel de anidación haz 2 "trace(this)" tanto donde esté la función como donde quieras atacar y luego miras a ver que profundidades tiene cada uno.
El salvaguardar la "encapsulación" evitando _roots y _levels es un primer paso. Luego acabarás incluso evitando muchos _parents porque la comunicación entre instancias la haras pasando la instancia como parámetro y finalmente la basaras en eventos (esa fue mi trayectoria).
Lo del _lockroot contemplalo como ultimiiiisima opción.
En definitiva... la aproximación que mencionas de atacar mediante _parents es la correcta (si no quieres retocar la arquitectura de la aplicación y utilizar eventos), lo único es dar con el path relativo correcto.
Por último, si has cargado la peli en otro nivel ten en cuenta que _root hace referencia a la "base" del nivel donde estes... es decir que si estas en _level3.xx.xx y utilizas _root será distinto (será _level3 de hecho) que si estás en level0.yyy.yy.yy y utilizas _root (que sería _level0).
elSuricatoAnidado