문제

AJAX 툴킷 아코디언 익스텐더를 사용하고 있으며 컨텐츠 섹션에 플래시를 포함 시키려고 할 때 약간의 "펑키"가 수행됩니다.

내가 지금 무엇을하고 있는지 볼 수 있습니다. http://kristinsconfections.com/gallery.aspx. 아코디언을 전환 할 때 알 수 있듯이 약간 고르지 않습니다. Flickr에서 플래시 슬라이드 쇼를 당기고 있으므로 전혀 제어 할 수 없습니다. 이 사이트는 빵 굽는 사람이 되려고하는 친구만을위한 것이므로 우선 순위가 높지 않습니다. JavaScript, .NET 또는 jQuery를 사용하여 할 수있는 일 ??

다음은 해당 페이지에서 사용하는 정확한 코드입니다.

<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>
도움이 되었습니까?

해결책

Ajax 툴킷 제품이 일반적으로 너무 어리 석다는 것을 알게됩니다. jQuery는 사용하기 쉽고 크로스 브라우저 지원과 확장 성이있어 선호도를 사용하여 사용하는 것이 좋습니다. 있습니다 아코디 안 위젯 법안에 맞는 jQuery UI 스위트에서.

모든 플래시 영화가 숨겨진 DIV에로드하면 성능이 좋지 않은 경우 플래시로로드 할 수있는 곳에서 변경할 수있는 이벤트가 있습니다. 이것은 Accordian 페이지에 문서화되어 있으며 jQuery로 쉽게 수행 할 수 있습니다).

다른 팁

그것은 오래 서있는 것 같습니다 벌레 Firefox에서 특정 위젯에만 해당되지 않습니다. 나의 최선의 시도 :

<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. 아코디언 애니메이션이 재생되도록 객체 가시성을 숨 깁니다.
  2. 1 초 기다리기 - 애니메이션이 끝나기에 충분히 길지만 너무 길지 않아 눈에 띄는 지연이 있습니다.
  3. 숨겨진 물체를 보여줍니다

이것은 깜박 거리는 것을 수정하지만 애니메이션이 재생되는 동안 플래시 객체가 사라집니다.

Firefox3, IE8 및 Chrome에서 테스트했으며 실제로 IE (버전 8)에서 잘 작동하는 것처럼 보이며 FF3 및 Chrome에서는 그렇게 좋지 않습니다.

나는 찾았다 이 게시물 같은 문제에 부딪친 어딘가에서 Fadetransitions 속성을 'False'로 설정하면 고정되어 있지만 원하는 솔루션은 아니라고 생각합니다.

당분간 아코디안에 미리보기 이미지를 넣어 보셨습니까? 그런 다음 사용자가 JavaScript를 사용하여 이미지를 클릭하여 플래시로 교체 할 때? 나는 그것이 훨씬 더 좋아 보일 것이라고 생각합니다.

누군가가 아코디안에서 다른 창을 선택하면 (모니터링 할 이벤트가 확실하지 않음-아코디언 하이버.

그러면 문제를 일으키는 플래시 / 브라우저 상호 작용에 대해 걱정할 필요가 없다고 생각합니다.

나는 사용하는 것이 좋습니다 jQuery 아코디언 위젯, 또한. 나는 그것과 함께 일했고, 사용하기 쉽고, 가벼운 무게, 모든 브라우저에서 작동하며 버그가 전혀 없었다. 당신이 선택할 수있는 많은 스킨이 있으며, 밀기가 밀려 오면 실제로 자신의 피부를 쌓는 것은 엉덩이에 많은 고통이 아닙니다.

그 외에도 SWF, 특히 wmode 기인하다. 좋은 설명 기사가 작성되었습니다 여기, 당신은 그것으로 시작할 수 있습니다. 당신은 무시할 수 있습니다 GPU 그리고 direct 모드, Flash Player 10 용 SWF를 사용하지 않는다고 생각하기 때문입니다.

물론 보이지 않는 플래시 영화를 내려야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top