ระบบอนุภาค Flash CS3 ActionScript 3
ข้อความแสดงข้อผิดพลาดอื่น ๆ เกิดขึ้นเพราะเราลบฟังก์ชั่นหิมะจากภายในฟังก์ชั่นเกล็ดหิมะ ด้วยเหตุนี้ฟังก์ชั่นปริมาณหิมะจึงไม่ทราบวิธีการจดจำเกล็ดหิมะ เราจำเป็นต้องทำการเปลี่ยนแปลงโค้ดฟังก์ชัน snowfall เพื่อบอกให้จดจำเกล็ดหิมะปัจจุบันที่เพิ่งถูกสร้างขึ้น เราจะเปลี่ยน "_Snowflake" เป็น "event.target" ในสี่แห่งที่เกิดขึ้น

เรามีการแก้ไขอีกหนึ่งครั้งก่อนที่เราจะทดสอบภาพยนตร์อีกครั้ง ลองย้อนกลับไปที่โค้ดฟังก์ชันเกล็ดหิมะ Event Listener ภายในรหัสนี้เรียกใช้ฟังก์ชัน snowfall แต่มันก็ยังฟังอยู่บนเวที เราจำเป็นต้องเปลี่ยนสิ่งนี้เพื่อให้ Event Listener แนบกับเกล็ดหิมะใหม่แต่ละอันตามที่สร้างขึ้นและไม่เปลี่ยนไปเป็นเฟรมภาพเคลื่อนไหวใหม่ ที่ด้านหน้าของรหัส Event Listener ให้เปลี่ยน "stage" เป็น "_Snowflake"

ทดสอบอีกครั้ง ไม่มีข้อผิดพลาดและเรามีเกล็ดหิมะทั้งหมด 70 ตัวตกลงมาที่ก้นเวที แต่อนิเมชั่นก็หยุดเพราะเราไม่ได้สร้างเกล็ดหิมะใหม่หลังจากเกล็ดหิมะเริ่มต้น 70 ใบ เราจำเป็นต้องเพิ่มรหัสบางส่วนที่จะรีไซเคิลเกล็ดหิมะ 70 แผ่นนี้กลับขึ้นไปด้านบนสุดของเวที ในขณะที่เราย้ายเกล็ดหิมะเหล่านี้กลับไปด้านบนให้ใช้รหัส Math.random () เดียวกันกับที่เราใช้ในฟังก์ชันเกล็ดหิมะเพื่อวางเกล็ดหิมะรีไซเคิลของเราแบบสุ่ม แต่คราวนี้เราต้องใช้ "event.target" แทน "_Snowflake"

สุดท้ายเราจำเป็นต้องลบโค้ด removeEventListener ออกจากภายในฟังก์ชั่น snowfall เราไม่ต้องการที่จะหยุดเกล็ดหิมะของเราจากการล้มอีกต่อไป เราต้องการให้พวกเขาไปที่ด้านบนและล้มลงอีกครั้ง นี่คือรหัสใหม่สำหรับคำสั่งเงื่อนไข

ทดสอบอีกครั้งและคุณจะเห็นเกล็ดหิมะตกลงมาจากบนลงล่างถึง 70 ตามด้วยเกล็ดหิมะรีไซเคิล แต่มีไม่กี่วินาทีก่อนที่เกล็ดหิมะรีไซเคิลจะเริ่มร่วงหล่น มันจะเป็นแอนิเมชั่นที่ลื่นไหลมากขึ้นถ้าเราสามารถเปลี่ยนรหัสเพื่อให้เกล็ดหิมะเริ่มต้น 70 ตัวถูกวางไว้ทั่วทั้งเวทีแทนที่จะอยู่ด้านบนสุด ลองกลับไปที่ฟังก์ชั่นเกล็ดหิมะและเปลี่ยน "40" เป็น "400" สำหรับคุณสมบัติ_Snowflake.y สิ่งนี้จะวางเกล็ดหิมะเริ่มต้น 70 ตำแหน่งในตำแหน่งสุ่มจาก 0 ถึง 400 ตามแนวแกน Y ซึ่งจะครอบคลุมทั่วทั้งเวที

ทดสอบอีกครั้งและเราประสบความสำเร็จ บันทึกฉากหิมะของคุณเป็น SnowScene10.fla

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

←ย้อนกลับ

ลิขสิทธิ์ 2018 Adobe Systems Incorporated สงวนลิขสิทธิ์. ภาพหน้าจอผลิตภัณฑ์ Adobe พิมพ์ซ้ำได้รับอนุญาตจาก Adobe Systems Incorporated Adobe, Photoshop, อัลบั้ม Photoshop, องค์ประกอบ Photoshop, Illustrator, InDesign, GoLive, Acrobat, Cue, Premiere Pro, องค์ประกอบรอบปฐมทัศน์, สะพาน, After Effects, InCopy, Dreamweaver, แฟลช, ActionScript, ดอกไม้ไฟ, Contribute, Flash Catalyst และ Flash Paper เป็น / เป็น [a] เครื่องหมายการค้าจดทะเบียน [s] หรือเครื่องหมายการค้า [s] ของ Adobe Systems Incorporated ในสหรัฐอเมริกาและ / หรือประเทศอื่น ๆ