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!!!
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
Usuario desconocido
Ok, gracias por la respuesta :) creo que era un problema con un setInterval que me tocaba un poco las narices.