10. november 2003 - 11:14Der er
17 kommentarer og 1 løsning
mx 2004 onLoad bug
Det ser ud til at der en bug(mærkelighed) ifm. loading af XML i den nye lækre flash.
Jeg har et par workarounds på banen allerede, men de er begge lidt "grimme". Måske har nogle af jer nogle forslag:
Problem: Benytter man xml.onLoad() kan man ikke ummiddelbart få fat i andre probs og funktioner end dem der måtte være defineret i xmlinstancen selv....med mindre man selvfølgelig referere til dem direkte.
Mit problem er helt konkret at jeg har lavet en klasse hvori der er en række XML-properties. Når så en XML er blevet loadet, ønsker jeg at køre en-eller-anden funktion fra klassen. Jeg skal altså kalde en klassefunktion inde fra en onLoad funktion i et XML objekt. DET er problematisk.....this er nemlig XML og IKKE klassen!
Jeg hr deltaget i PRÆCIS samme diskussion på FlashCoders. Lav en custom klasse, der wrapper XML-klassen (ikke extender, XML-objektet bør være en property), som også indeholder en "setCallBack" funktion, som tager både funktion og objekt at invokere på.
(Jeg har set noget med " Object(myXML).owner = this " som en af de løsninger jeg kan bruge. Jeg mener det var på flashcoders også. Det virker som en god og OOP-agtigt forsvarlig løsning.)
Macromedia skulle have sagt, at det kun er et problem i nogle players. Det er vist ikke noget issue i NE playeren....men ok, Who cares about that! :)
nej det har jeg ikke. Det vil jeg da lige prøve. Jeg har ikke prøvet så meget andet end det der burde virke.....som så ikke virker, og derefter lidt hacks. Den der .owner-finte jeg nævte; er det ikke lidt nemmere end at extende hele XML-klassen? (såfremt det virker altså).
NÅMEN, no prob, jeg har slet ikke travlt med det, det er faktisk i et sideprojekt i privaten jeg har problemet, og ikke her på arbejde:)
tilykke tilykke - og tak! Kigger lige på det :-) Er du OOP-koder i forvejen, eller er den del af det helt nyt for dig så? Jeg syntes det er en fremragende og FULDSTÆNDIG LOGISK udviklingretning macromedia der har lagt.
Nænej, jeg har bare ikke fået lejlighed til at lave noget i den nye, da alle projekter jeg arbejder på professionelt laves i MX - eller i Flash 5 (grundet den reelle udbredelse i dk - mx er efterhånden på ca. 75-80% kun)
Ja det virker jo fint nok, men jeg syntes det er meget arbejde for et lille problem. Men nu stillede jeg jo også spørgsmålet meget generelt, og din løsning virker meget fornuftig....på det generelle plan.
Du må gerne uddybe hvad der gør Object(myXML).owner = this - løsningen til et hack. Det mener jeg da ikke det er....Det har jeg vist heller ikke sagt:) Det er bare lidt 'stenet' at man skal gøre det, men det er jo macromedia's skyld.
Egentlig er det da meget fair bare at overskrive owner-variablen i xml-instansen f.eks i konstruktøren....eller hvad siger du?
Ja, jeg kender godt det der med, rent proffesionelt, at være bundet til ældre versioner af en eller anden teknologi. Det er nok bare udviklers 'curse' hehe.... Godt man så kan sidde og 'lege' derhjemme :)
Min resulterende klasse er jo generel - kald den noget andet og læg den i din installations standard classpath. Så kan du altid bruge den. Det skyldes at XML-objektet jo er lavet til Flash 5 - jeg forstår ikke, hvorfor de ikke har lavet en helt ny optimeret til AS2
yeah hørt, din generelle løsning skal da have lidt points:)
Nej der er mange ting ved Macromedia der er sværre at forstå. At en sådan bug( og jeg mener altså på det er en bug:-! ) komme ud i release 1 tyder på at de har haft lidt for travlt - testet det MEGET lidt - eller at de simpelthen er ligeglade, fordi de syntes den er et lille problem der kan løses med diverse workarounds indtil næste upgrade kommer.
Fair nok. Du har sagt rigeligt - og jeg glæder mig allerede:)
Synes godt om
Ny brugerNybegynder
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.