Toon posts:

[CSS] Flash 'refresht' na wijzigen visibility/display

Pagina: 1
Acties:

Verwijderd

Topicstarter
Voor webcam en andere doeleinden gebruik ik Flash in een web-based applicatie waar ik momenteel mee bezig ben. De interface bestaat uit elementen die getoond en verborgen kunnen worden, en in sommige elementen plaats ik dus die Flash clips.

Echter kom ik nu het volgende probleem tegen; de Flash staat in een container <div> (of ander element), waarvan de CSS display property op 'none' gaat, als daarna de display property weer op '' gaat om de container te tonen is het net alsof de Flash opnieuw geladen wordt. Als er een sessie was in de Flash dan is deze verloren gegaan. Als er iets afgespeeld was dan springt de Flash weer naar het begin van de clip.

Ik heb op Google en GoT gezocht en niks kunnen vinden hierover. Ik heb het probleem getest op Firefox 1.5.0.5, IE 6, Opera 9, SeaMonkey, Mozilla Suite. Zie hier mijn test case.
IE doet wat ik wil, de clip verbergen, maar wel onthouden waar ie mee bezig was. In Firefox (e.a. Gecko browsers) en Opera werkt de eerste methode niet... Het Flash filmpje begint weer opnieuw...

Heeft iemand hier ervaring mee en enig idee wat ik eraan kan doen?

Thanks alvast!

  • André
  • Registratie: Maart 2002
  • Laatst online: 11-02 14:19

André

Analytics dude

Probeer ipv met de display of visibility eens met de left te spelen. Dus left: -1000px en dan verplaatsen naar left: 100px.

  • Rowanov
  • Registratie: Februari 2004
  • Niet online

Rowanov

Kop eens wat anders...

Het is trouwens geen refresh van de pagina; in feit verberg je een element wat in de flow staat, waardoor alles verschuift. Probeer je flash-film maar eens absoluut te positioneren en dan die verberg grappen uit te halen, dan zal je zien dat er niets verschuift.

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 17:57
Daarnaast wil je de display van je div niet leeg maken, maar "block". Betwijfel echter of dat je probleem oplost.

Verwijderd

Topicstarter
André schreef op vrijdag 28 juli 2006 @ 19:53:
Probeer ipv met de display of visibility eens met de left te spelen. Dus left: -1000px en dan verplaatsen naar left: 100px.
Dit heb ik trouwens ook geprobeerd, maar het leek alsof het element nog in de flow stond. In de applicatie werd daarmee de hele layout verneukt...
Rowanov schreef op zaterdag 29 juli 2006 @ 14:28:
Het is trouwens geen refresh van de pagina; in feit verberg je een element wat in de flow staat, waardoor alles verschuift. Probeer je flash-film maar eens absoluut te positioneren en dan die verberg grappen uit te halen, dan zal je zien dat er niets verschuift.
Hij verdwijnt wel goed in de test case (niet in de applicatie, die veel meer andere elementen en CSS heeft, en dus de layout omgooit), maar als ik hem dan weer toon dan doet ie precies hetzelfde als met de display property op 'none'.
frickY schreef op zaterdag 29 juli 2006 @ 15:31:
Daarnaast wil je de display van je div niet leeg maken, maar "block". Betwijfel echter of dat je probleem oplost.
Aangezien ik in de test via een class 'hidden' alleen maar display: none; toevoeg, en met de class deze property weer weghaal is hier geen sprake van.

Bedankt voor de reacties! Ik heb mijn testcase geupdate, wat meer methodes toegevoegd. Met de visibility: hidden; behoudt de clip wel zijn staat, maar verdwijnt het element niet uit de flow, dus dat is geen oplossing... ziet er niet uit natuurlijk.

Is dit een bug van Firefox/Opera of misschien van Macromedia/Adobe? Waarom zou het filmpje/de Flash niet in het geheugen mogen blijven staan?

  • Rowanov
  • Registratie: Februari 2004
  • Niet online

Rowanov

Kop eens wat anders...

Verwijderd schreef op maandag 31 juli 2006 @ 14:57:
Bedankt voor de reacties! Ik heb mijn testcase geupdate, wat meer methodes toegevoegd. Met de visibility: hidden; behoudt de clip wel zijn staat, maar verdwijnt het element niet uit de flow, dus dat is geen oplossing... ziet er niet uit natuurlijk.
Dat is wel een oplossing, als je hem daarbij ook even uit de flow haalt met een position: absolute;.

Verwijderd

Topicstarter
Rowanov schreef op maandag 31 juli 2006 @ 18:56:
[...]

Dat is wel een oplossing, als je hem daarbij ook even uit de flow haalt met een position: absolute;.
Dat werkt niet (in Firefox, wel in Opera!), zie mijn testcase (update).

Wanneer ik position: absolute; gebruik krijg ik hetzelfde probleem... De flash begint weer bij het begin...

[ Voor 4% gewijzigd door Verwijderd op 01-08-2006 11:27 ]


  • Rowanov
  • Registratie: Februari 2004
  • Niet online

Rowanov

Kop eens wat anders...

Hier even een tabel van werking in verschillende browsers:
FirefoxInternet Explorer 6.0.2900Internet Explorer b3Opera
Toggle Displaynietwelwelniet
Toggle Width/Heightwelwelwelwel
Toggle Positionnietwelwelbraque
Toggle Visibilitywelwelwelwel
Toggle <IFRAME>nietnietnietwel
Toggle Visibility + Positionnietwelwelwel


Kan het misschien aan jouw pc liggen dat visibility niet werkt?

Verwijderd

Topicstarter
Cascading Stylesheet:
1
2
3
4
5
6
7
8
.hidden {
    visibility: hidden;
    height: 0px!important;
    width: 0px!important;
    margin: 0!important;
    padding: 0!important;
    border: none!important;
}

Zoals in de tabel van Rowanov hierboven te zien is, is dit de oplossing!

De problemen die ik nog had na het gebruiken van deze oplossing kwamen door andere elementen uit de applicatie in combinatie met het wmode="transparent" of wmode="opaque" attribuut op de Flash.

Zie ook de discussie op http://www.snook.ca/archives/other/hit_bug_in_fire/

Bedankt voor de hulp allemaal!
Pagina: 1