Je veux faire mon propre lecteur vidéo AS3

  • ScottG
  • Proficient
  • Proficient
  • No Avatar
  • Inscription: Juil 06, 2010
  • Messages: 266
  • Status: Offline

Message Mars 14th, 2012, 2:07 pm

Im bon à AS2, mais je voulais faire mon propre AS3 lecteur vidéo faisant me donnerait une OK compréhension du code. C'est probablement la plus simple question Ive postée ici principalement depuis Im nouveau à AS3 et joue seulement avec quelques tid bits du code.

Donc je sais pas comment le faire en AS3, AS2 mais me donne les questions. J'ai un lecteur vidéo qui charge un fichier swf externe qui contient les boutons et contrôles des animations qu'ils font. Cependant, toutes les fonctionnalités sera assurée par le film de racine ou pare pas selon comment vous souhaitez appeler.

ACTIONSCRIPT Code: [ Select ]
 
// Make a url Loader object
var player_loader:URLLoader = new URLLoader();
 
// Setup and event listener
player_loader.addEventListener(Event.COMPLETE, setup_player);
 
// Load the XML file
player_loader.load(new URLRequest('config.xml'));
 
// Setup the player
function setup_player(e:Event):void {
   
   var xml_config:XML = new XML(e.target.data);
   
   var skin_loader:Loader = new Loader();
   // var skin_url:URLRequest = new URLRequest(xml_config.skin.text()); // This is how the skin will be loaded however for the sake test testing use the line below
   var skin_url:URLRequest = new URLRequest('skin.swf');
 
   skin_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, set_buttons);
   skin_loader.load(skin_url);
   player_controls.addChild(skin_loader);
   
}
 
function set_buttons(e:Event):void {
   trace('In Set Buttons');
      player_controls.play_button.addEventListener(MouseEvent.CLICK, play_video);
 
}
 
function play_video(e:MouseEvent):void {
   trace('clicked')
}
 
 
  1.  
  2. // Make a url Loader object
  3. var player_loader:URLLoader = new URLLoader();
  4.  
  5. // Setup and event listener
  6. player_loader.addEventListener(Event.COMPLETE, setup_player);
  7.  
  8. // Load the XML file
  9. player_loader.load(new URLRequest('config.xml'));
  10.  
  11. // Setup the player
  12. function setup_player(e:Event):void {
  13.    
  14.    var xml_config:XML = new XML(e.target.data);
  15.    
  16.    var skin_loader:Loader = new Loader();
  17.    // var skin_url:URLRequest = new URLRequest(xml_config.skin.text()); // This is how the skin will be loaded however for the sake test testing use the line below
  18.    var skin_url:URLRequest = new URLRequest('skin.swf');
  19.  
  20.    skin_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, set_buttons);
  21.    skin_loader.load(skin_url);
  22.    player_controls.addChild(skin_loader);
  23.    
  24. }
  25.  
  26. function set_buttons(e:Event):void {
  27.    trace('In Set Buttons');
  28.       player_controls.play_button.addEventListener(MouseEvent.CLICK, play_video);
  29.  
  30. }
  31.  
  32. function play_video(e:MouseEvent):void {
  33.    trace('clicked')
  34. }
  35.  
  36.  


Donc ce code serait charger un XML lorsqu'il termine il chargera la peau une fois qu'il charge aurait configurer les fonctions de clic. tout cela fonctionne jusqu'à la mise en place de la fonction du clic
ACTIONSCRIPT Code: [ Select ]
player_controls.play_button.addEventListener(MouseEvent.CLICK, play_video);


Maintenant je sais quand je l'ai fait avec AS2, j'ai dû utiliser onLoadInit comme ceci
ACTIONSCRIPT Code: [ Select ]
// Get the skin and make sure something is in it
var skin_swf = 'skin2.swf';
 
// Make a new movie clip loader for the skin
var SkinLoader:MovieClipLoader = new MovieClipLoader();
 
// Add a listener so we know when something has happened
SkinLoader.addListener(this);
 
// Load the skin into the empty movie clip
SkinLoader.loadClip(skin_swf, empty);
 
// This function is the onload listener for the skin loader. this is a must to have other wise there would be no way to communicate
// from the actions here to the buttons in the skin
function onLoadInit(mc:MovieClip) {
   control_bar.play_pause_button.onPress = function () {
     
      // Play the animation
      this.animation.gotoAndPlay('press');
   
   }
}
 
  1. // Get the skin and make sure something is in it
  2. var skin_swf = 'skin2.swf';
  3.  
  4. // Make a new movie clip loader for the skin
  5. var SkinLoader:MovieClipLoader = new MovieClipLoader();
  6.  
  7. // Add a listener so we know when something has happened
  8. SkinLoader.addListener(this);
  9.  
  10. // Load the skin into the empty movie clip
  11. SkinLoader.loadClip(skin_swf, empty);
  12.  
  13. // This function is the onload listener for the skin loader. this is a must to have other wise there would be no way to communicate
  14. // from the actions here to the buttons in the skin
  15. function onLoadInit(mc:MovieClip) {
  16.    control_bar.play_pause_button.onPress = function () {
  17.      
  18.       // Play the animation
  19.       this.animation.gotoAndPlay('press');
  20.    
  21.    }
  22. }
  23.  


IVe a recherché l'onLoadInit AS3 ou quelque chose comme elle et ne semble pas prête de trouver quoi que ce soit.

Donc pour récapituler, j'ai une swf(swf1) qui charge un swf2 swf(swf2) a les boutons et swf1 contient l'actionscipt pour les boutons dans le swf2. Si quelqu'un sait comment le faire ou peut me diriger pour certains documents qui peuvent aider. Votre aide serait appréciée.

Si je découvre une solution je l'affichera.
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Mars 14th, 2012, 2:07 pm

  • ScottG
  • Proficient
  • Proficient
  • No Avatar
  • Inscription: Juil 06, 2010
  • Messages: 266
  • Status: Offline

Message Mars 14th, 2012, 2:47 pm

OK...J'aime quand cela arrive. Post de ma question et trouver la réponse ici c'est

ACTIONSCRIPT Code: [ Select ]
// Make a skin loader
var skin_loader:Loader = new Loader();
 
// Setup the player
function setup_player(e:Event):void {
   
   // Get and build the XML
   var xml_config:XML = new XML(e.target.data);
   
   // Make an url request object for the skin loader
   var skin_url:URLRequest = new URLRequest("skin.swf");
   
   // Load the skin
   skin_loader.load(skin_url);
   
   // Set the on complete listener
   skin_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, set_buttons);
   
}
 
// Setup the buttons
function set_buttons(e:Event):void {
     
   if(skin_loader.content) {
     
      // Add the movie clip to the container
      player_controls.addChild(skin_loader);
     
      // When you explicitly coerce the type to MovieClip, all works fine.
      var mc:MovieClip = skin_loader.content as MovieClip;
     
      // Set the button listeners
      mc.play_button.addEventListener(MouseEvent.CLICK, play_video);
   
   }
 
}
 
  1. // Make a skin loader
  2. var skin_loader:Loader = new Loader();
  3.  
  4. // Setup the player
  5. function setup_player(e:Event):void {
  6.    
  7.    // Get and build the XML
  8.    var xml_config:XML = new XML(e.target.data);
  9.    
  10.    // Make an url request object for the skin loader
  11.    var skin_url:URLRequest = new URLRequest("skin.swf");
  12.    
  13.    // Load the skin
  14.    skin_loader.load(skin_url);
  15.    
  16.    // Set the on complete listener
  17.    skin_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, set_buttons);
  18.    
  19. }
  20.  
  21. // Setup the buttons
  22. function set_buttons(e:Event):void {
  23.      
  24.    if(skin_loader.content) {
  25.      
  26.       // Add the movie clip to the container
  27.       player_controls.addChild(skin_loader);
  28.      
  29.       // When you explicitly coerce the type to MovieClip, all works fine.
  30.       var mc:MovieClip = skin_loader.content as MovieClip;
  31.      
  32.       // Set the button listeners
  33.       mc.play_button.addEventListener(MouseEvent.CLICK, play_video);
  34.    
  35.    }
  36.  
  37. }
  38.  


J'ai dû déplacer la classe loader de peau à l'extérieur de la fonction de lecteur d'installation en raison de la le fait que j'avais besoin d'accès à la skin_loader dans la fonction set_buttons. Je propose également l'addChild à la fonction set de boutons. Je devais déclarer que le contenu était un clip par cette ligne ici
ACTIONSCRIPT Code: [ Select ]
var mc:MovieClip = skin_loader.content as MovieClip;
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8926
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Mars 14th, 2012, 2:59 pm

Parfois écrit un post vous permet de voir les choses que vous avez manqué avant, et parfois, le moment est juste drôle. Je ne sais pas combien de fois j'ai commencé à écrire un post et soit figure il out sur mon propre en écrivant il, ou peu après. Heureux vous trouve une résolution et partagé pour ceux qui rencontrent un problème similaire.
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • ScottG
  • Proficient
  • Proficient
  • No Avatar
  • Inscription: Juil 06, 2010
  • Messages: 266
  • Status: Offline

Message Mars 14th, 2012, 7:48 pm

J'essaie toujours d'afficher les solutions aux threads de que commencer. Je déteste juste chercher un problème et de trouver quelqu'un ayant exactement la même question et le thread est une année ou plus vieux et pas de solution.

Afficher de l'information

  • Total des messages de ce sujet: 4 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 41 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC