ถ้ายังพอจำกันได้การทำงานของ Message ชนิด Bang คือเป็นการบอกกับ Object ที่รับ Bang เข้ามาว่า “ให้ทำตามหน้าที่ของนายไป” ถ้ายังไม่เข้าใจแนวคิดของ Message ชนิด Bang ก็ทดลองเล่นโปรแกรมนี้กันเลยครับ

Patch นี้จะแบ่งการทำงานของโปรแกรมออกเป็น 3 โปรแกรมย่อย ซึ่งมีเพียง Object Print เป็นพระเอกของงานเท่านั้น ลองคลิกลงบนปุ่มต่าง ๆ ดู แล้วสังเกตผลครับ

เมื่อสังเกตจาก Patch เราจะเห็นว่ามี Object Print อยู่ 2 ตัว ที่มีตัวอักษร X และ Y ส่วน Object ของโปรแกรมแรกไม่มีชื่อและการที่มันไม่มีชื่อ ผลลัพธ์ที่ได้มาจะขึ้นต้นด้วยคำว่า “print:” และโปรแกรม 2 กับ 3 ที่มีชื่อ ผลลัพธ์จะขึ้นต้นด้วยชื่อของ Object Print แทน

ใน Patch นี้จะมีอีกสิ่งหนึ่งนอกจาก Print แล้ว ก็คือปุ่ม (Button) นั่นเอง เราจะเห็น Button ได้ที่ Palette อย่างที่แสดงในรูปครับ และ Button จะเป็นอีกหนึ่งสิ่งที่เราต้องใช้กันบ่อยมาก ๆ ด้วย

จากนี้คงจะเข้าใจแนวคิดของ Bang กันมากขึ้นแล้วนะครับ เมื่อเราส่ง Bang เข้าไปยัง Message Box จะมีการส่งข้อความที่อยู่ในกล่องต่อออกไปเหมือนที่เราเห็นผลในโปรแกรมแรก และหากเราคลิกลงไปที่ Message Box เลย เราก็จะได้ผลลัพธ์เหมือนกับส่ง Bang เข้าไปเช่นเดียวกัน

– ในโปรแกรมแรก เราสามารถที่จะคลิกตรง Message Box ที่เก็บคำว่า “Gotcha!” ได้เลย หรือคลิกที่ปุ่ม Bang เพื่อจะส่ง Bang เข้าทาง Inlet ของ Message Box ข้อความก็จะไปปรากฏที่หน้าต่าง Max โดย Object Print เช่นกัน

– โปรแกรมที่สอง เป็นการพิสูจน์ว่าปุ่ม (Button) ทำหน้าที่ในการส่ง Bang แล้ว ยังพิสูจน์ว่า Bang ไม่มีผลใด ๆ นอกจากเป็นตัวสั่งให้ Object ต่าง ๆ ทำงานตามหน้าที่ของมัน ซึ่งเป็นเพราะ Print ไม่สนใจว่า Message ที่เข้ามาคือMessage ชนิดไหน แต่จะทำการ Print ทุกอย่างที่เข้ามาทาง Inlet

– โปรแกรมที่สาม ค่อนข้างชวนสับสนในตอนแรก เพราะทั้ง 2 ปุ่มต่างก็ให้ผลเหมือนกันคือ Print คำว่า “y: bang” ที่นี้ก็จะเกิดคำถามขึ้นมาว่า เมื่อเรากดปุ่มบน ปุ่มไหนเป็นตัวส่ง Bang เข้า Print จริง ๆ?

คำตอบคือปุ่มล่างครับ เพราะปุ่มบนจะเป็นตัวส่ง Bang เข้าปุ่มล่าง ก่อนที่ปุ่มล่างจะส่ง Bang เข้าไปบอก Print ให้ทำงาน

สรุป

Bang เป็น Message พิเศษ ที่ทำการ Trigger หรือบอก Object ที่รับ Bang เข้าไปทำงาน ส่วนปุ่ม (Button) ใช้ในการส่ง Bang หรือทำการ Trigger Object อื่น ๆ

ศึกษาเพิ่มได้จาก Max Reference หัวข้อ

Button Flash on any message, send a bang