อนุบาลงาน ActionSctipt

เริ่มโพสต์โดย ej_sing, 10 พ.ย. 2007, 00:44 น.

0 สมาชิก และ 1 บุคคลทั่วไป กำลังเปิดอ่านโพสต์นี้

กากก่อเกรียนนู้บ

 :05: ผมผิดเอง ต้องเอา

var ballBounds = this.getBounds(_root);

ไว้ใน enterFrame ครับ แล้วตัด onClipEvent(load) ทิ้งไปเลยครับ

แบบนี้

onClipEvent (enterFrame) {
//
// บังคับ
if (Key.isDown(Key.DOWN)) {
_y += 3;
}
if (Key.isDown(Key.UP)) {
_y -= 3;
}
if (Key.isDown(Key.LEFT)) {
_x -= 3;
}
if (Key.isDown(Key.RIGHT)) {
_x += 3;
}
//   
// เช็กขอบ

var ballBounds = this.getBounds(_root);
if (_root.อ.hitTest(ballBounds.xMax, _y, true)) {
trace("xMax");
_x -= 2;
}
if (_root.อ.hitTest(ballBounds.xMin, _y, true)) {
trace("xMin");
_x += 2;
}
if (_root.อ.hitTest(_x, ballBounds.yMax, true)) {
_y -= 2;
}
if (_root.อ.hitTest(_x, ballBounds.yMin, true)) {
_y += 2;
}
}

iannnnn

อ๋อ คือยังงี้มันก็จะเช็กทุกเสี้ยวินาทีเหมือนเดิม ไม่ใช่แค่ครั้งแรก
แต่ว่าไม่หน่วงเหมอืนเก่าใช่ไหมครับ


แต๊งกิ้วๆ :27:

ej_sing

 :46: ด้วยคนครับ
พอเข้าใจเรื่อง getBounds() แล้วครับ ใช้ง่ายกว่าเยอะ



ไอ้ของเช็คจุดๆของผม ไม่ต้องไปสนนะ  :30: ทำเอาอยากรู้
ยังคิดอยู่เลยว่ามันเอามาทำอะไรได้มั่ง จะเช็คเห่าอะไรขนาดนั้น(วะ)  :30:

ไอ้เบิร์ด

เขียนcodeให้โหลดไฟล์ swf มาบน scene แรก
แต่พอเปลี่ยนsceneไฟล์swf ที่อยู่บนscene แรกมันไม่หายอะครับ จะremove ออกไงครับ
"...ถ้าสายตาเราชินกับในที่มืดแล้ว คงยากที่จะเพ่งมองโลกภายนอกได้..."

ej_sing

unloadMovie(MovieClip)

ลองดูหรือยังครับ

emulator

มีประโยชน์จิงๆคับ นับถือเลย

ว่าแต่ถ้าเราจะเพิ่ม มูวี้คลิบเข้าไปในตัว mc ของได้อีกหรือเปล่าคับ หรือจะสั่งgeturl เราจะทำยังไงอะคับ เพนสะตอนนี้มันเป้น on(release) กะ on(press) อยู่

อ้างคำพูดจาก: ej_sing เมื่อ 13 ธ.ค. 2007, 02:11 น.
ต่อ....จากอันบนนั้นที่ไม่มีใครสนใจ :34:
เฉลย ในแบบผมเอง ด้วยสมองน้อยๆคิดแบบง่ายๆ

เพราะี้จำไม่ได้หรอก ว่า mc อันไหนสร้างก่อนหลัง mc อันไหนอยู่ลำดับที่เท่าไร ใช่ไหมจ๊ะ
ผมจึงตั้งค่าแรกของลำดับชั้นไว้ เอาสูงกว่าทุกตัวเยอะๆหน่อยก็ได้ เอาไว้อ้างอิงไง

จากตรงนี้ ถ้าใครเผลอมาอ่าน ลองคิดตามช้าๆด้วย

สมมุติว่า ให้

ตอนนี้ n เป็นค่าลอยๆที่ mc ทุกตัวต้องหยิบเอามาใช้อ้างอิง depth เพื่อสั่งลำดับชั้นตัวเอง
คือจัดลำดับชั้นกันใหม่เริ่มจากค่านี้เลย

โดยให้ mc ตัวไหนก็ตาม swapDepth() ด้วยค่า n และใหบวกเพิ่มขึ้น 1

และลำดับชั้นของตัวแรกที่กด ก็คือ 2 เพราะเราบวกค่า n เพิ่มขึ้น 1 แน่นอนสูงสุดๆเลย ห่างจากลำดับล่างๆเป็นหมื่นชั้น
ตอนนี้  n กลายเป็น 2 แล้วนะจ๊ะ เพราะเรา บวก 1 ไปแล้ว


พอตัวที่สองกดปั๊ปก็ swapDepth() ด้วยค่า n อีกและให้บวกเพิ่มขึ้น 1 ค่า
ซึ่งลำดับชั้นของตัวที่สองที่กด ก็คือ 3 สูงกว่าเมื่อกี้อีก 1
ตอนนี้  n กลายเป็น 3 แล้วนะจ๊ะ เพราะเรา บวกเพิ่มอีก 1


.... 4
.. 5
. 6

มันก็จะเพิ่มค่า n เรื่อยๆโดยไม่มีการซ้ำกันของลำดับชั้นในแต่ละ mc ครับ

งงไหมครับ  :22: ไม่งงนะ

ทีนี้มาดูสคริปกัน

จากอันที่แล้ว เราจะเพิ่ม swapDepths() กันล่ะ

เอาสคริปนี้ใส่ใน mc ทั้งห้าตัว ก็จะได้ตามตัวอย่างนี้แล้วครับ  :22:
// อันนี้ผมทำให้เห็นลำดับชั้นของแต่ละตัวด้วยครับ และใช้ฟังชั่นง่ายๆเอาครับ
จริงๆแล้วเริ่มลำดับที่ -16000 ก็ไ้ด้ครับ จะเห็นว่าค่าแรกเริ่มมันก็ -163xx โน่นแน่ะ  :08:

http://img2.f0nt.com/flash/29d916d550236c0f3db8eb194c713dfe.swf

หวังว่าคงเข้าใจกันบ้างนะครับ
หากไม่เข้าใจ :05: ลองค่อยๆอ่านนะครับ จริงง่ายๆครับ แต่ตัวหนังสือเยอะไปนิดนึง ไม่รู้จะพิมพ์ทำไมเยอะแยะ

|<3N

ทำ quiz นับคะแนนทำยังไงครับ :09:
สะพรึบสะพรั่ง ณหน้าและหลัง ณซ้ายและขวา ละหมู่ละหมวด ก็ตรวจก็ตรา ประมวลกะมา สิมากประมาณ

กากก่อเกรียนนู้บ

 :55: คำถามมันค่อนข้างกว้างนะเคน
เอาเป็นว่า เราเคยเขียน ActionScript มาบ้างยังอะ..

ตัวอย่าง.. (ต้องการแบบนี้เรอะ?)
http://img3.f0nt.com/flash/73c21b798a93bd3c258671a61a31952f.swf

ตัวนี้สุ่มโจทย์และคำตอบด้วย

|<3N

#383
ใช่ครับ ทำระบบรวมคะแนนไม่เป็น :53:
(ไม่ต้องสุ่มนะครับ เดี๋ยวงง)

แก้ไข:หลังจากที่รวมรวบความขยันค้นด้วยกูเกิลแล้วทำเป็นแล้วครับ :31:
สะพรึบสะพรั่ง ณหน้าและหลัง ณซ้ายและขวา ละหมู่ละหมวด ก็ตรวจก็ตรา ประมวลกะมา สิมากประมาณ

กากก่อเกรียนนู้บ

 :05: พิมพ์ตั้งนานหายหมดเลย เพราะไฟล์แนบไม่เป็น rar
งั้นเอาสั้นๆ กระชับๆ

มีส่วนที่แก้ได้อยู่ 2 ที่ :37:

1. แก้เรื่องสุ่ม/ไม่สุ่ม ดูบรรทัด 7
var isRandom = false;

false = ไม่สุ่ม
true = สุ่ม

:37: จบ!! ง่ายมาก!!
:30:


2. เพิ่ม/แก้/ลบ คำถาม

อ้างอิง/////Questions declaration///////
//[QUESTION,CHOICE A, CHOICE B, CHOICE C, CHOICE D, CORRECT BUTTON]
items_details[0] = ["Question 1", "10", "20", "30", "40", "a"];
items_details[1] = ["Question 2", "abc", "def", "ghi", "jkl", "c"];
items_details[2] = ["Q 3", "aa", "bb", "cc", "dd", "a"];

เรียงตามลำดับเลยนะครับ

อ้างอิงitems_details[ข้อที่ n-1] = ["คำถามข้อที่ n", "ตัวเลือก a", "ตัวเลือก b", "ตัวเลือก c", "ตัวเลือก d", "เฉลย"];

งงมั้ยหว่า :44:
งงก็ถามได้เลยนะครับ

Bellbells

#385
ขอบคุณครับ กำลังหาวิธีทำอยู่พอดี  :45: +

|<3N

ขอบคุณครับ กำลังศึกษา ไม่อยากเอาไปแก้ส่งเฉยๆ ถ้าไม่รู้เรื่องจริงๆค่อยใช้วิธีชาวบ้านๆ :47b:
สะพรึบสะพรั่ง ณหน้าและหลัง ณซ้ายและขวา ละหมู่ละหมวด ก็ตรวจก็ตรา ประมวลกะมา สิมากประมาณ

retard

ขอบคุณครับมีประโยชน์มากๆเลยครับ ตอนนี้อ่านไปได้ 10กว่าหน้าแล้ว

:45:

พันเอก

#388
คือผมลองทำเกมส์ดูนะครับ แต่หลังจากปาของชิ้นแรกแล้ว มันแปลกตรงที่ของชิ้นที่2มันมองไม่เห็นครับแต่มันมีตัวตนอยู่เพราะ traceเห็น คงผิดพลาดอะไรซักอย่าง
http://img3.f0nt.com/flash/5815ce79b83b0b7ecbe3f8f881afed88.swf

fla อยู่ด้านล่างนะครับ
ถามต่ออีกหน่อยผมจะแบ่งให้ขยะกับถังมันเป็นหมวดหมู่ยังไงี
แบบ ถังสีเหลือง ถ้าobj1 นี้ปาลงถัง+ 5 คะแนน แต่obj2ถ้าลงไปต้อง-10ครับ ถ้าเป็นอันเดียวก็ไม่มีปัญหาแต่ถ้ามีหลายๆออบเจ็คจะแบ่งวิธีไหนให้่ายที่สุดครับ
สมาชิกสมาคมพ่อบ้านทหารบก

กากก่อเกรียนนู้บ

ยังไม่ได้โหลดดูนะครับ แต่ขอตอบอีกเรื่องก่อน

เราก็กำหนดไว้ในใจว่า ถังเหลืองเป็นหมายเลข 1 ถังเขียวเป็นหมายเลข 2 และถังฟ้าเป็นหมายเลข 3

จากนั้นเ้วลาสร้าง MovieClip ที่เป็นขยะออกมาก็กำหนดไปเลยว่า ชิ้นนี้ต้องลงถังไหน (1 2 หรือ 3)
เสร็จแล้วก็เอาค่าตัวนั้นไปเช็คดูเวลาขยะโดนถังอีกที

สมมติให้ขยะผัก = mc1

สั่งให้

mc1.trashID = 3; //สั่งให้ขยะผัก ต้องลงถังฟ้า

ทีนี้ตอนลงถังขยะก็เช็คดู

if(this.hitTest.................){
  if(this.id == target.trashID){
     //เช็คว่า ถ้า id ของถัง ตรงกับ trashID ที่อยู่ในตัวขยะ
     score += 5;
  }
}


ประมาณนี้ครับ
ตัวนี้จะเป็นเบื้องต้นของการคิดเขียนโปรแกรมเชิงวัตถุครับ

คือ ค่าไหน เป็นค่าเฉพาะของวัตถุ ก็เก็บไว้ในวัตถุซะ ประมาณนั้น

SMF 2.1.7 © 2026, Simple Machines