Avatar billede nicklasb Nybegynder
10. juli 2008 - 15:11 Der er 10 kommentarer og
1 løsning

Ændre størrelse af flash objekt via flash selv

Er det muligt, via flash at ændre størrelsen på objektet?
"Problemet" er, at flashfilen genereres dynamisk og jeg derfor ikke fra html-filen hvor flashen vises, endnu ved hvor høj flash-filen bliver.
Jeg vil gerne, når flashen er loaded, få den til selv at ændre højden på filen, så den ændres dynamisk i forhold til indholdet.
Avatar billede maqhem Nybegynder
10. juli 2008 - 16:19 #1
Flash kan ikke selv ændre dimensioner, ej heller rode i html-koden og gøre det sådan. Men du kan gøre det, at du kalder noget javascript, der ændrer størrelsen på filen i html-koden. Prøv eksempelvist at give dit objekt id'en "flashautoresize" i html-koden og tilføj følgende stykke java script:

---
function ResizeFlash(NewWidth, NewHeight) {
    document.getElementById("flashautoresize").style.width = NewWidth;
    document.getElementById("flashautoresize").style.height = NewHeight;
}
---

Så skal du i Flash bare kalde denne funktion:

---
// AS3:
ExternalInterface.call("ResizeFlash(500, 500)");

// AS2:
getURL("java script:ResizeFlash(500, 500)");
---
Avatar billede maqhem Nybegynder
10. juli 2008 - 16:20 #2
... Eller som ExternalInterface.call("ResizeFlash", 500, 500), hvis du synes, det er pænere.
Avatar billede nicklasb Nybegynder
10. juli 2008 - 17:28 #3
Det lyder som en rigtig god løsning!

Da har jeg dog et andet problem. For at loade Flashen bruger jeg SWFObject - noget lignende:

... = new SWFObject("flashfil.swf", "flashid", ...

Hvis jeg tager .style.height på getElementById("flashid") står der intet. Jeg kan ikke lige gennemskue hvordan jeg gør det via SWFObject; ved ikke om der måske er en funktion i det til at ændre højde - måske du har en idé?

Men tusinde tak for hjælpen ind til videre, da..
Avatar billede maqhem Nybegynder
10. juli 2008 - 17:49 #4
Jeg kiggede lige i den js-kode, der ligger på Google. Et sted i den fandt jeg følgende:

outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+AF+">"+AD+"</object>"

Og det er dét, vi skal have fat på. Lige foran classid, kan du indsætte din id:

outerHTML='<object id="SKRIV_ID_HER" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+AF+">"+AD+"</object>"

Og så bare sørg for at have den id, som du kalder i funktionen, Flash snakker til :)
Avatar billede maqhem Nybegynder
10. juli 2008 - 17:50 #5
Der er helt sikkert en bedre måde at gøre det på, men jeg har altid kun bevæget mig på overfladen af SWFObject og har aldrig lært det ordentligt at kende.
Avatar billede nicklasb Nybegynder
10. juli 2008 - 18:23 #6
Hvis jeg ændre i SWFObject filen, så der står
... [y]+'" />'}}t.outerHTML='<object id="flashid" classid="clsid:D27CDB6E-AE6D-1 ...
kan jeg intet finde på getElementById("flashid") :(
Avatar billede maqhem Nybegynder
10. juli 2008 - 19:02 #7
Og du har husket "document" foran getElementById? Hvis ja, så drop SWFObject. Flash 9's html-publish giver samme resultat, og der kan du utroligt nemt angive id.
Avatar billede nicklasb Nybegynder
13. juli 2008 - 12:03 #8
Kan jeg ved selv at indsætte objects og params, gøre så brugerne ikke skal aktivere flash-vinduet i IE?
Og hvad med flash-installeren? Kan jeg tilføje den?
Og hvad hvis flashen helst skal være version 7 eller 8?
Avatar billede maqhem Nybegynder
13. juli 2008 - 16:38 #9
1. Det er standard derved.
2. Jeg er ikke helt med. Hvilken installer?
3. Version ni. Hverken syv eller otte giver det resultat, jeg snakker om.
Avatar billede nicklasb Nybegynder
05. november 2008 - 11:56 #10
Lig et svar - fik det til at virke, ved at kalde javascripten fra din første kommentar.
Avatar billede maqhem Nybegynder
05. november 2008 - 12:09 #11
Svar.
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