Avatar billede Slettet bruger
01. oktober 2008 - 12:46 Der er 2 kommentarer

Nå eksisterende FLVplayer komponent fra Flash AS3

Hej klasse-eksperter.

Jeg har FLVplayer-komponenten liggende på stage (playermc). I frame 1 oprettes en klasseinstance (player) ud fra klassen Player.

I klassen står bl.a. følgende:

package {
  import flash.display.*;
  import flash.net.URLLoader;
  import flash.net.URLRequest;
  import flash.events.Event;
  import fl.video.*;
  import flash.events.NetStatusEvent;
  import flash.events.SecurityErrorEvent;

  public class Player extends MovieClip {
      private var xmlreader;
      public var playermc;
      etc...
 
      public function initialisering() {
        // Skal være public, da den skal bruges af FLA-filen
        xmlreader = new XMLreader();
        playermc.source = "0_30988900_1222689898.flv";
        playermc.play();
      }
  }
}

Det giver en compilerfejl:
TypeError: Error #1010: A term is undefined and has no properties.
    at classes.basic::Player/initialisering()
    at ebplayer_fla::MainTimeline/ebplayer_fla::frame1()

Hvad gør jeg forkert? Det er playermc.source og -play der forårsager det
Avatar billede andersbro Nybegynder
01. oktober 2008 - 14:23 #1
Fortsættelse af documentclass-problemet :-)

Hvis din player-class er document-class burde du kunne henvise til playermc på den måde du gør det her, men nu skal du gøre noget i stil med root.playermc. På nuværende tidspunkt er playermc lig med null.

Mangler du i øvrigt ikke en constructor-function? Eller har du bare ikke skrevet den her.
Avatar billede Slettet bruger
01. oktober 2008 - 23:12 #2
Hej Anders.

Constructor er ikke taget med, der da ikke stod noget af interesse.

Det med root.playermc virkede desværre ikke - den gav blot en fejlmelding, men noget er der sket:

Min initialiseringskode i Flash-filen er fjernet:
  import classes.basic.Player;
  var ebPlayer = new Player();
  ebPlayer.initialisering();
...og erstattet med linien "classes.basic.Player" i Document Class. Nu er min konstruktør så lidt mere vigtig end før, da jeg ikke længere manuelt kalder "initialisering"-metoden.

I min rodklasse har jeg (i constructor) så følgende stående:
  var laerred_mc:Laerred = new Laerred();
  this.stage.addChild(laerred_mc);

Det virker nu OK... MEN har givet et andet problem, når ikke "initialisering"-metoden kaldes manuelt, men gennem konstruktør. Min klassestruktur ser sådan ud:

Fla-fil -> [Player] -> [XMLreader]

Jeg kan kalde metoden "initialisering" fra Player-konstruktør. Fint.
Jeg har en subklasse - MEN: når den instantieres, kaldes Player-konstruktøren også... der igen kalder "initialisering" og dermed kalder XMLreader. Ak, en uendelig løkke.

Hvordan pokker...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester