Comunidad de diseño web y desarrollo en internet online

Como acceder al escenario

Citar            
MensajeEscrito el 11 Abr 2014 08:07 am
Buenas tengo una pregunta, he buscado en este foro pero las soluciones que veo no me han funcionado o no he sabido implementarlas.

Mi problema es que tengo elementos creados con flash en el escenario en la linea de tiempo y quiero acceder a ellos y manipularlos desde una clase así cómo el acceder al escenario(stage) en la linea de tiempo también desde la clase.

Muchas gracias a los que me pueda ayudar.

Por tecnoendika

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Abr 2014 12:01 pm
El tema es donde instancias la clase. Puedes setear el Document Class en Flash (al seleccionar el escenario, desde la paleta de propiedades), esa clase es como si fuera la linea de tiempo principal

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Abr 2014 02:18 pm
Eso sería lo mismo que hace un import com.reproductor.miClase ??

Gracias por la ayuda.

Por tecnoendika

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Abr 2014 02:38 pm
No, el document class tiene como scope el timeline principal, mientras una clase que importes e instancies por tu cuenta, no tendrá jerarquía visual hasta que la agregues al displayList con addChild

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Abr 2014 03:12 pm
Si cualquier child es "visible" (no es el termino correcto, pero para que te des una idea, agregado al stage) puede ser accedido.

cualquierDisplayObject.stage (si esta agregado al displayList va a devolver una referencia al stage, si es null, significa que el child no esta agregado)

cualquierDisplayObject.root (referencia, en tu caso, al timeline principal, pero tenes que hacer casting a MovieClip, para poder trabajar con el):
MovieClip(cualquierDisplayObject.root)
cualquierDisplayObject.root as MovieClip

O sea, siempre podes acceder al root o al stage desde cualquier DisplayObject:
cualquierDisplayObject.root.stage
cualquierDisplayObject.stage.root

// esta referencia ciclica apunta siempre al mismo objeto
cualquierDisplayObject.stage.stage.stage.stage.stage.stage /// Esto no tiene sentido practico alguno, pero es para que veas las relaciones entre objetos, y las dependencias.

De esto podes deducir que todos esos objetos son o extienden DisplayObject.
DisplayObject es la clase BASE de cualquier objeto que pueda ser agregado al stage (addChild).


----

Entonces, con respecto a tu pregunta, tenes facilmente 2 opciones:
- Usar el DocumentClass, con la clase base que va a "reemplazar" el root timeline principal (necesita extender MovieClip)

- Instanciar alguna clase que sirva como "Manager" (administradora) del timeline en el frame 1.

Código ActionScript :

package{
import flash.display.MovieClip;
public class PlayerTimelineManager extends MovieClip {

public function PlayerTimelineManager(){
   trace( this.stage )
addEventListener( Event.ADDED_TO_STAGE, onAdded )
}

private function onAdded(e:Event):void {
    // ya tenemos acceso al stage.
    trace( this.stage )
/// vamos al frame 3.
this.gotoAndStop(3);
this.play_btn.alpha = 0.5 ; 
}
}

Por ejemplo:

Código ActionScript :

// en el FLA, frame 1
var playerTimelineManager = new PlayerTimelineManager( this );

// class PlayerTimelineManager (ponerla en el mismo directorio que el FLA)
package{
import flash.display.MovieClip;
public class PlayerTimelineManager {
  public function PlayerTimelineManager( p_mainTimeline:MovieClip ){
     _mc = p_mainTimeline ;
// _mc.stage 
// _mc.root
// _mc.play_btn.alpha = 0.5 ; // en caso de que tengas un boton con nombre de instancia play_btn, en el frame 1...

// tambien podes moverte por la linea de tiempo, quizas play_btn esta en el frame 3....
_mc.gotoAndStop(3);
_mc.play_btn.y = 10 
}
}
}

Por rodrigolopezpeker

61 de clabLevel



 

chrome
Citar            
MensajeEscrito el 11 Abr 2014 03:53 pm
Muchas gracias me has ayudáis mucho.

Por tecnoendika

15 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.