![]() |
|
||||||||||||||||||||||
ก่อนอื่นต้องขอโทษทุกๆท่านด้วยนะครับที่บทความนี้ออกล่าช้า เนื่องจากว่าเคาท์เตอร์ตัวก่อนนั้นมีขนาดใหญ่(ประมาณ 5K) ผมจึงทำการปรับปรุงจนมีขนาดไม่ถึง 3K (ถ้าคุณไม่ทำเคาท์เตอร์ให้หวือหวาเกินไป) ผมคิดว่าคุณคงทำเคาท์เตอร์แบบนี้ได้อย่างไม่ยากเย็นนัก เพราะว่าถ้าคุณทำเคาท์เตอร์หลักที่ 1 ได้แล้ว หลักต่อๆไปก็ไม่ใช่เรื่องยาก
เห็น /:a+10 ไหมครับ นั่นคือเราจะให้ Flash คำนวณค่า ตัวแปร+10 ซะก่อนแล้วจึงเอาคำตอบที่ได้ไปใส่เป็นตัวเลขเฟรม ส่วนคำสั่ง Tell target นั้นเป็นคำสั่งสำหรับควบคุม Symbol ที่เป็น Movie Clip โดยเฉพาะ Movie clip ที่คุณจะควบคุมได้นั้นจะต้องใส่ชื่อลงในช่อง instance name ที่หน้าต่าง instance Properties หรือพูดง่ายๆว่าต้องใส่ชื่อให้มันก่อน เราจึงจะสามารถควบคุมมันได้นั่นเอง ส่วนบรรทัดสุดท้ายเป็นการสั่งให้ cgi ทำงานเพราะว่าถ้าจะโหลดตัวแปรจาก cgi ก็ต้องสั่งให้ cgi ทำงานก่อนจึงจะโหลดตัวแปรได้ใช่ไหมครับ อันนี้เป็นการประยุกต์ใช้คำสั่ง Load Variables มาใช้ในกรณีที่ต้องการสั่งให้ cgi ทำงานครับ(อาจจะเอาไปใช้ในการเรียก cgi ตามเว็บที่ให้บริการแบนเนอร์ก็ได้ อิอิ) หลังจากที่ทำเสร็จแล้วก็ลอง Preview ดูเลยครับ ปัญหาที่เกิดขึ้นกับเคาท์เตอร์ตัวนี้ 1. เรียกใช้ตัวแปรข้าม Movie ไม่ได้ บางคนอาจจะสงสัยว่าทำไมต้องใส่คำสั่ง Load Variables into Location หลายอันด้วย เหตุที่เป็นเช่นนี้อาจจะเป็นเพราะว่า Flash ไม่สามารถส่งตัวแปรข้าม Movie ได้เช่น เมื่อเราโหลดตัวแปร a=5 เข้ามาใน Scene1 แล้ว เราจะไม่สามารถเรียกใช้ตัวแปรนี้จาก Movie clip อื่นๆได้เลย ผมลองหลายครั้ง หลายวิธีแล้วก็ยังส่งตัวแปรข้าม Movie ไม่ได้เลย 2. โหลดตัวแปรจาก CGI โดยตรงไม่ได้ จริงๆแล้วคำสั่ง Load Variables into Location นั้นสามารถโหลดตัวแปรจาก CGI ได้ทันที แต่ผมไม่สามารถใช้วิธีนี้ได้เนื่องจาก Flash ไม่โหลดตัวแปรขึ้นมาให้ (คุณสามารถไปศึกษาจากตัวอย่างที่อยู่ในโฟลเดอร์ C:\Program Files\Macromedia\Flash 4\Sample Pages\Chat Sample ตัวอย่างที่อยู่ในโฟลเดอร์นี้จะเป็นโปรแกรมสำหรับ Chat โดยใช้ ASP ร่วมกับ FLASH) 3. ตัวเลขขึ้นซ้ำกันเมื่อโหลด Flash Counter พร้อมกัน ปัญหานี้เป็นผลพวงมาจากข้อ 2 ครับ เนื่องจากว่า Flash ไปนำข้อมูลมาจากเท็กซ์ไฟล์ธรรมดา ไม่ได้นำมาจากผลการทำงานของ CGI โดยตรง จึงทำให้เกิดตัวเลขซ้ำๆกันเมื่อโหลด Flash Counter พร้อมๆกัน แต่ผมรับรองว่าตัวเลขเคาท์เตอร์ที่ CGI เก็บเอาไว้ถูกต้องแน่นอนครับ 4. โหลดครั้งแรกทำไม่จึงไม่ขึ้นตัวเลข อ๊ะๆ ไม่ต้องตกใจครับ เนื่องจากว่าในไฟล์ data.dat ยังไม่มีข้อมูลใดๆอยู่ในนั้นเลย เพียงแค่คุณโหลดเป็นครั้งที่สอง ตัวเลขก็จะขึ้นเองครับ ปัญหานี้ก็เป็นผลพวงที่มาจากข้อ 2 อีกแล้วครับ ปล.ปัญหาที่พบในเคาท์เตอร์เวอร์ชั่น 1 นี้ ได้ถูกแก้ไขเป็นที่เรียบร้อยแล้ว คุณสามารถอ่านได้ที่บทความ Flash Counter II ครับ การสร้าง Flash counter นั้นค่อนข้างยุ่งยากสักหน่อย หลักง่ายๆก็คือสร้างเคาท์เตอร์หลักแรกให้สำเร็จเสียก่อน ถ้าหลักแรกทำได้หลักต่อๆไปก็ทำได้ง่ายเนื่องจากว่าแค่แก้ตัวแปรที่จะรับข้อมูลมาเท่านั้นเอง โค้ด CGI ที่ทดสอบในครั้งนี้ผม ZIP รวมกับตัวอย่าง Flash counter ไว้แล้ว คุณสามารถดาวน์โหลดได้จากหัวข้อดาวน์โหลดครับ สำหรับปัญหาที่ผมพบใน Flash Counter นี้ ถ้าท่านใดสามารถแก้ไขได้ กรุณาส่งเมล์มาบอกเลยครับ จะขอบคุณมากๆเลยครับ และถ้าใครสร้างเคาท์เตอร์แบบสวยๆได้แล้วละก็อย่าลืมส่งมาโชว์บ้างนะครับ
|