2009-03-12 5 views
2

저는 아약스 툴킷 아코디언 익스텐더를 사용하고 있습니다. 컨텐트 섹션에 플래시를 삽입하려고하면 약간의 "펑키"를 느낍니다.asp.net에 embeded 플래시 accordian가 제대로 수행되지 않습니다.

내가 지금 일하는 것을 볼 수 있습니다 : http://kristinsconfections.com/gallery.aspx. 아코디언을 토글 할 때 보시다시피 조금 고르지. 플리커 (Flickr)에서 플래시 슬라이드 쇼를 당겨서 전혀 제어 할 수 없습니다. 이 사이트는 베이커가 되려고하는 친구를위한 사이트이므로 높은 우선 순위가 아니라 매우 실망 스럽습니다 !! 자바 스크립트, .net 또는 심지어 jquery를 사용하여 할 수있는 모든 것 ?? 여기

내가 해당 페이지에 사용하고있는 정확한 코드입니다 : 내가 FireFox3, IE8과 크롬에서 그것을 테스트

<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> 

답변

2

Ajax 툴킷은 일반적으로 너무 거추장 스럽다. JQuery는 사용하기가 쉽고, 우리가 선호하는 크로스 브라우저 지원과 확장 성이 뛰어나며, 동일한 작업을하는 것이 좋습니다. 청구서에 맞춰야하는 JQuery UI 제품군에는 accordian widget이 있습니다.

숨겨진 div로로드되는 모든 Flash 무비를 사용하면 성능이 떨어지게됩니다. 플래시에서로드 할 수있는 곳에서 변경할 수있는 이벤트가 있습니다. 이것은 accordian 페이지에 문서화되어 있습니다 (JQuery로 쉽게 할 수 있습니다).

0

하고, 실제로 IE에서 잘 작동하는 것처럼 보인다 (버전 8), 그리고 FF3 및 Chrome에서 매우 유용합니다.

나는 같은 문제가있는 어딘가의 this post을 찾았습니다. FadeTransitions 속성을 'False'로 설정하면 문제가 해결되는 것으로 보입니다.하지만 그것이 당신이 원하는 해결책이 아닐지라도 말입니다.

0

당분간 아코디언에 미리보기 이미지를 넣으려고 했습니까? 그런 다음 사용자가 자바 스크립트를 사용하여 이미지를 클릭하면 플래시로 교체됩니까? 나는 그것이 훨씬 좋게 보일 것이라고 생각한다.

누군가가 accordian에서 다른 창을 선택하면 (모니터 할 이벤트가 확실하지 않아서 AccordionBehavior.js를 보면), 플래시를 제거하고 이미지로 바꾸고 계속 진행할 수 있습니다.

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

0

jQuery accordion widget도 사용하는 것이 좋습니다. 나는 그것으로 일했고 매우 가볍고 사용하기 쉽고 모든 브라우저에서 작동하며 아무런 버그도 발견하지 못했습니다. 당신이 선택할 수있는 많은 스킨이 있습니다. 밀기 만하면, 자신의 피부를 만드는 것은 엉덩이에 그렇게 많은 고통이되지 않습니다.

게다가 SWF를 포함시키는 방법, 특히 wmode 속성을 살펴보십시오. here로 작성된 좋은 설명문이 있습니다. 난 당신이 플래시 플레이어 10

물론, 당신은 보이지 않는 플래시 무비를 언로드한다 위해 컴파일 된 SWF를 사용하지 않을 생각하기 때문에 당신은 GPUdirect 모드를 무시할 수 있습니다.

1

특정 위젯과 상관없이 firefox에서 오랫동안 서있는 것 같습니다. bug내 최고의 시도 :

<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. 이 깜박임를 해결

숨겨진 개체를 표시

  • 하지만 애니메이션

    를 통해 재생하는 동안 플래시 객체가 사라집니다