Group Blog
 
<<
กันยายน 2552
 12345
6789101112
13141516171819
20212223242526
27282930 
 
13 กันยายน 2552
 
All Blogs
 
ปรับปรุง Longman Dictionary of Contemporary English 2009 แก้เลื่อนหน้าลงเมื่อหมุนเมาส์(1)

longman 1 การแก้ไขลองแมนตอนนี้และตอนต่อๆไปได้มาจากเว็บบล็อกของชาวจีนท่านหนึ่งสามารถเข้าไปดูได้ที่

//blog.sina.com.cn/s/blog_538a1d910100fasq.html~type=v5_one&label=rela_nextarticle

ไฟล์ที่ได้รับการแก้ไขแล้วสามารถดาว์นโหลดได้ที่ //orchidflower.ys168.com
ขอขอบคุณเจ้าของบล็อกที่อนุญาติให้นำมาเผยแพร่ต่อ

ตอนนี้จะเป็นการแก้ไขการทำงานของ Scroll Wheel

    เมื่อหมุนเมาส์ในหน้าต่างดิกลองแมนจะเลื่อนหน้าลงแบบกระโดดข้ามคำทีละหลายๆคำขึ้นอยู่กับการตั้งต่าของScroll Wheel ใน Control Panel โดยปกติก็จะข้ามทีละสามคำใครที่มีลองแมนอยู่ถ้าลองใช้ดูก็จะรู้ว่ามันน่าหงุดหงิดขนาดไหนพูดง่ายๆคือ Scroll Wheelเป็นของไร้ประโยชน์ไปเลย

วิธีแก้ไขให้เลี่อนหน้าลงมาเรื่อยๆเมื่อหมุนเม้าส์
  1. ต้องแก้ไขไฟล์ C:/ProgramFiles/Longman/LDOCE5/chrome/plugs.jar ไฟล์นี้จริงๆแล้วเป็นไฟล์ zipข้างในจะมีโครงสร้างไดเร็กทอรี่และไฟล์ย่อยๆซ่อนอยู่ให้หาโปรแกรมบีบอัดไฟล์มาเปิด Winzip ก็ได้ Winrar ก็ได้ แต่แนะนำ 7zipเพราะฟรี โหลดได้ที่นี่ www.7-zip.org/download.html
  2. ให้เพิ่มฟังชั่นนี้เข้าไปใน  plugs/content/skVirtualList/xbl/skVirtualList.xml ที่อยู่ในไฟล์ plugs.jar โดยตัดไปปะต่อจากบรรทัดที่ 967

  3.              <xbl:methodname="scrollByLines">
                   <xbl:parameter name="evt"/>
                   <xbl:body>
                         <![CDATA[
                               var evtDetail = Number(evt.detail);
                               var piForceDirect = evtDetail/Math.abs(evtDetail);
                               this.g_ScrollDirect = piForceDirect;
                               var winFrame = this.contentWindow;
                               var oBody = this.oBody;
                               this.setFirstVisibleDivIndex();
                               this.setLastVisibleDivIndex();
                               var oLastDiv = this.contentDocument.getElementById("doc" +this.iLastIndex);
                               var oFirstDiv = this.contentDocument.getElementById("doc" +this.iFirstIndex);
                               winFrame.scrollTo(0,winFrame.scrollY + (this.g_ScrollDirect *this.scrollSpeed));
                               if (this.g_ScrollDirect==1) {
                                   if (oBody.offsetHeight - winFrame.scrollY - winFrame.innerHeight< this.screenHeight)
                                   {
                                       if (this.collapScroll=="true")  //Only display oneentry
                                           return;

                                       // We are reaching the bottom, add a document
                                       var LastDiv = oBody.lastChild;
                                       var lastId = LastDiv.getAttribute("id");
                                       var num = Number(lastId.replace(/doc([0-9]+)/,"$1"));
                                       //win.alert(num);
                                       if (num + 1 <= this.maxElement){
                                           for (var i= num + 1;  i < this.maxElement+1;i++){
                                               var oNode = this.InsertVlistItemNode(i, true);
                                               if (this.screenHeight < oNode.offsetTop - oFirstDiv.offsetTop)
                                                   break;
                                           }
                                       }
                                   }
                               }
                               if (this.g_ScrollDirect==-1) {
                                   if (winFrame.scrollY < this.screenHeight &&oBody.firstChild)
                                   {
                                       //alert(this.collapScroll);
                                       if (this.collapScroll=="true")  //Only display oneentry
                                           return;

                                       // We are reaching the top, add a document
                                       var FirstDiv = oBody.firstChild;
                                       var num = Number(FirstDiv.id.replace(/doc([0-9]+)/,"$1"));
                                       var firstHeight =0;
                                       if ( 0 <= (num -1) ){
                                           for (var i= num - 1;  0<= i ; i--){
                                               this.InsertVlistItemNode(i, false);
                                               myFirstDiv = oBody.childNodes[0];
                                               mySeconDiv = oBody.childNodes[1];
                                               firstHeight += Number(mySeconDiv.offsetTop) -Number(myFirstDiv.offsetTop);
                                               if (window.screen.height < Number(oFirstDiv.offsetTop ))
                                                   break;
                                           }
                                           winFrame.scrollTo(0,winFrame.scrollY + firstHeight - this.scrollSpeed);
                                       }
                                   }
                               }
                           } catch (err) {
                               throw("skVirtualList.autoScroll(): " + err);
                           }
                         ]]>
                   </xbl:body>
               </xbl:method>

  4. เปลี่ยนฟังชั่นที่ตอบสนองต่อการหมุนเมาส์ DOMMouseScrollจากthis.scrollByIndex(event) เป็น this.scrollByLines(event)โดยการเปลี่ยน

       จาก
    <xbl:handler event="DOMMouseScroll"action="if(this.collapsedScrollbar) return false;returnthis.scrollByIndex(event);"/>
       เป็น
    <xbl:handler event="DOMMouseScroll"action="if(this.collapsedScrollbar) return false;returnthis.scrollByLines (event);"/>

  5.  สามารถเปลี่ยนความเร็วของการเลื่อนหน้าลงได้ที่

  6.            <xbl:property name="scrollSpeed">
                   <xbl:getter>
                       var a = this.getAttribute("scrollSpeed");
                       return (a) ? a: 30;
                   </xbl:getter>
                   <xbl:setter>
                       this.setAttribute("scrollSpeed", val);
                   </xbl:setter>
               </xbl:property>


    โดยเปลี่ยน a ที่อยู่หน้าโคลอนเป็นตัวเลข เช่นเป็น return (a) ? 30 : 30;ก็จะเร็วขึ้นสามเท่า ค่าน้อยสุดที่ใช้ได้คือ 10
    อีกที่หนึ่งที่เปลี่ยนได้คือใน plugs/content/js/searchSystem.jsที่อยู่ในไฟล์ plugs.jar โดยเปลี่ยนค่าของ this.defaultScrollSpeed ที่บรรทัดที่ 81 เป็นค่าที่ต้องการค่าน้อยสุดที่ใช้ได้คือ 10




Create Date : 13 กันยายน 2552
Last Update : 14 กันยายน 2552 23:38:28 น. 0 comments
Counter : 627 Pageviews.

ชื่อ : * blog นี้ comment ได้เฉพาะสมาชิก
Comment :
  *ส่วน comment ไม่สามารถใช้ javascript และ style sheet
 

anchan42
Location :


[ดู Profile ทั้งหมด]

ฝากข้อความหลังไมค์
Rss Feed

ผู้ติดตามบล็อก : 1 คน [?]




Friends' blogs
[Add anchan42's blog to your web]
Links
 

 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.