Frage

Ich bin mit dem Ajax-Toolkit Akkordeon-Extender und ich merke, es ein wenig „funky“ durchführt, wenn ich versuche, einige Flash in den Content-Abschnitte einzubetten.

Sie sehen, was ich arbeiten jetzt an: http://kristinsconfections.com/gallery.aspx. Wie Sie sehen können, wenn Sie das Akkordeon ist es ein wenig abgehackt wechseln. Ich ziehe die Flash-Slideshow von flickr, damit ich nicht, dass überhaupt kontrollieren kann. Die Seite ist nur für einen Freund, der versucht, ein Bäcker zu werden, so ist es nicht eine hohe Priorität nur sehr frustrierend !! Alles, was ich tun kann, mit Hilfe von JavaScript, .net oder sogar jquery ??

Hier ist der genaue Code, den ich auf dieser Seite bin mit:

<cc1:Accordion ID="MyAccordion" runat="server" SelectedIndex="0"
        HeaderCssClass="accordionHeader" ContentCssClass="accordionContent"
        FadeTransitions="true" FramesPerSecond="40" TransitionDuration="250" AutoSize="None">
        <Panes>
            <cc1:AccordionPane ID="pnlCakes" runat="server">
                <Header><div ><span style="float:left;">Cakes</span></div></Header>
                <Content>
                    <object width="572" height="429" type="application/x-shockwave-flash"
                     data="http://www.flickr.com/apps/slideshow/show.swf?v=67089"> 
                    <param name="flashvars" value="&offsite=true&amp;lang=en-us&page_show_url=%2Fphotos%2F28792515%40N08%2Fsets%2F72157612640424865%2Fshow%2F&page_show_back_url=%2Fphotos%2F28792515%40N08%2Fsets%2F72157612640424865%2F&set_id=72157612640424865&jump_to=" />
                    <param name="allowFullScreen" value="true" />
                    <param name="movie" value="http://www.flickr.com/apps/slideshow/show.swf?v=67089" />
                    </object>
                </Content>
            </cc1:AccordionPane>
             <cc1:AccordionPane ID="pnlCookies" runat="server">
                <Header><div ><span style="float:left;">Cookies</span></div></Header>
                <Content>
                 <object width="572" height="429"  type="application/x-shockwave-flash"
                 data="http://www.flickr.com/apps/slideshow/show.swf?v=67089"> 
                <param name="flashvars" value="&offsite=true&amp;lang=en-us&page_show_url=%2Fphotos%2F28792515%40N08%2Fsets%2F72157612640405779%2Fshow%2F&page_show_back_url=%2Fphotos%2F28792515%40N08%2Fsets%2F72157612640405779%2F&set_id=72157612640405779&jump_to=" />
                <param name="allowFullScreen" value="true" />
                <param name="movie" value="http://www.flickr.com/apps/slideshow/show.swf?v=67089" />
                </object>
                </Content>
            </cc1:AccordionPane>
            <cc1:AccordionPane ID="pnlCupcakes" runat="server">
                <Header><div ><span style="float:left;">Cupcakes</span></div></Header>
                <Content>
                <object width="572" height="429"  type="application/x-shockwave-flash"
                 data="http://www.flickr.com/apps/slideshow/show.swf?v=67089"> 
                <param name="flashvars" value="&offsite=true&amp;lang=en-us&page_show_url=%2Fphotos%2F28792515%40N08%2Fsets%2F72157612589253131%2Fshow%2F&page_show_back_url=%2Fphotos%2F28792515%40N08%2Fsets%2F72157612589253131%2F&set_id=72157612589253131&jump_to=" />
                <param name="allowFullScreen" value="true" />
                <param name="movie" value="http://www.flickr.com/apps/slideshow/show.swf?v=67089" />
                </object>
                </Content>
            </cc1:AccordionPane>
        </Panes>
</cc1:Accordion>
War es hilfreich?

Lösung

Ich finde das Ajax Toolkit Sachen zu klobig im Allgemeinen. JQuery ist so einfach zu bedienen, hat eine gute Cross-Browser-Unterstützung und Erweiterbarkeit, dass wir es bevorzugt einsetzen, und ich würde Ihnen empfehlen, das Gleiche zu tun. Es gibt ein accordian Widget in der JQuery UI-Suite, die die Rechnung passen sollte.

Wenn alle Filme Flash-mit in die verborgenen divs Laden gibt Ihnen schlechte Leistung gibt es ein Ereignis, das Sie in auf Änderung einhaken können, wo Sie in der Flash laden konnte. Dies wird auf der accordian Seite dokumentiert (und kann leicht mit JQuery erfolgen).

Andere Tipps

Es scheint ein langjähriger Fehler in firefox nicht spezifisch zu sein irgendein bestimmtes Widget. Meine besten Versuche:

<script type="text/javascript">
    function pageLoad() {
        var acc = $find('<%= MyAccordion.ClientID %>_AccordionExtender');
        acc.add_selectedIndexChanged(MyAccordion_SelectedIndexChanged);
    }
    function MyAccordion_SelectedIndexChanged(sender) {
        $("object").css("visibility", "hidden");
        setTimeout(
            function() { 
                $("object").eq(sender.get_SelectedIndex()).css("visibility", "visible"); 
            }, 1000);
    }
</script>
  1. Ausblenden der Objektsichtbarkeit so die Akkordeon-Animationen spielen durch
  2. Warten Sie 1 Sekunde - hoffentlich lange genug für die Animationen zu beenden, aber nicht zu lange, so dass Theres merkliche Verzögerung
  3. Zeigen Sie das versteckte Objekt

Dies behebt das Flimmern, aber das Flash-Objekt verschwindet, während die Animationen spielen durch

Ich habe es getestet unter FireFox3, IE8 und Chrome, und tatsächlich scheint gut in IE (Version 8) zu arbeiten, und nicht so schön in FF3 und Chrome.

fand ich diesen Beitrag von irgendwo, die in das gleiche Problem lief, und es scheint, dass die Einstellungen der FadeTransitions Eigenschaft auf ‚false‘ es behebt, obwohl ich wette, es ist nicht die Lösung für Sie gewartet haben.

Haben Sie versucht, ein Vorschaubild in der accordian für die Zeit setzen zu sein? Dann, wenn der Benutzer klickt auf dem Bild mit Hilfe von Javascript es mit dem Blitz zu ersetzen? Ich denke, das wäre viel besser aussehen.

Wenn jemand eine andere Scheibe im accordian wählt (nicht sicher, ob der Veranstaltung zu überwachen - Blick in AccordionBehavior.js)., Dann könnte man den Blitz entfernen, ersetzen Sie es mit einem Bild und geht

Ich denke, dann würden Sie nicht über die Flash / Browser-Interaktion sorgen haben, dass Sie Probleme verursacht.

würde ich empfehlen die Verwendung von jQuery Akkordeon-Widget , auch. Ich habe mit ihm gearbeitet, und es sehr einfach zu bedienen, geringem Gewicht, funktioniert auf allen Browsern und ich habe keine Fehler überhaupt gefunden. Es gibt eine Menge von Fellen Sie und wählen können, wenn es hart auf hart kommt, ist es nicht wirklich so viel Schmerz in den Arsch der eigenen Haut zu bauen.

Außerdem, werfen Sie einen Blick auf die Art und Weise Sie Ihre SWF-Dateien sind das Einbetten, vor allem die wmode Attribut. Es gibt einen guten erläuternden Artikel geschrieben hier , Sie könnten damit anfangen. Sie können die GPU und direct Modi ignorieren, weil ich glaube, du bist nicht eine SWF kompiliert für Flash Player 10 verwendet wird.

Und natürlich sollten Sie die Flash-Filme entladen, die nicht sichtbar sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top