•  

ยินดีต้อนรับสู่ ThaiFlashDev

ผู้เขียน หัวข้อ: ถามเรื่อง Adobe Flash Action Script 3 หน่อยครับ  (อ่าน 475 ครั้ง)

ออฟไลน์ goddogza

  • เด็กเตรียมอนุบาล
  • *
  • กระทู้: 2
ผมทำปุ่ม home กลับหน้าแรก

อ้างถึง
function onClickBtnho2(event:MouseEvent):void
{
gotoAndStop (1,"Scene 1");
}
btnho2.addEventListener(MouseEvent.CLICK, onClickBtnho2)

ใช้ได้ปกติ แต่ทีนี้พอใส่ สคิปเขียนลงไป แล้วกดปุ่ม home กลับมัน ขึ้น

อ้างถึง
TypeError: Error #1009: Cannot access a property or method of a null object reference.
   at _fla::MainTimeline/frame1()
   at flash.display::MovieClip/gotoAndStop()
   at _fla::MainTimeline/onClickBtnho2()

แก้ยังไงหรอครับแนะนำที อันนี้ สคิปเขียนครับ



อ้างถึง
var rectangle:Shape = new Shape;

addChild(rectangle);



stage.addEventListener(MouseEvent.MOUSE_DOWN, MouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, MouseUp);

function MouseDown(event:MouseEvent)
{
   rectangle.graphics.lineStyle(8,0x000000);
   rectangle.graphics.moveTo(mouseX, mouseY);
   stage.addEventListener(MouseEvent.MOUSE_MOVE, MouseMove);
   
   
}

function MouseMove(event:MouseEvent)
{
   rectangle.graphics.lineTo(mouseX, mouseY);
}


function MouseUp(event:MouseEvent)
{
   stage.removeEventListener(MouseEvent.MOUSE_MOVE, MouseMove);
   
}

ออฟไลน์ thora

  • เด็กอนุบาลสามกำลังโต
  • ****
  • กระทู้: 435
Re: ถามเรื่อง Adobe Flash Action Script 3 หน่อยครับ
« ตอบกลับ #1 เมื่อ: 11 พ.ค. 16, 02:48:54 »
มันขึ้นอยู่กับว่า บนเฟรม 1 นี้มีคำสั่งอะไรอยู่บ้าง แล้ววัตถุที่อ้างอิงกับคำสั่งยังอยู่หรือว่ามีการเปลี่ยนแปลงมันไปแล้ว
ควรวางลำดับความคิดเราก่อน ก่อนที่จะลงมือทำ

ออฟไลน์ goddogza

  • เด็กเตรียมอนุบาล
  • *
  • กระทู้: 2
Re: ถามเรื่อง Adobe Flash Action Script 3 หน่อยครับ
« ตอบกลับ #2 เมื่อ: 11 พ.ค. 16, 04:38:30 »
มันขึ้นอยู่กับว่า บนเฟรม 1 นี้มีคำสั่งอะไรอยู่บ้าง แล้ววัตถุที่อ้างอิงกับคำสั่งยังอยู่หรือว่ามีการเปลี่ยนแปลงมันไปแล้ว

หน้า 1 ครับ  แนะนำทีครับ ผมต้องแก้ยังไงถึงจะกดกลับหน้า home และใช้สคิปสคิปเขียนได้ปกติ อ่ะครับ
แล้วผมจะปิด สคิปวาดได้ไหมครับ แบบถึงหน้านี้ ไม่ให้สคิปทำงาน

อ้างถึง
stop();
 
 function onClickBtnst(event:MouseEvent):void
{
gotoAndStop (1,"Scene 2");
}
btnst.addEventListener(MouseEvent.CLICK, onClickBtnst)

function onClickBtnk(event:MouseEvent):void
{
gotoAndStop (1,"sub");
}
btnk.addEventListener(MouseEvent.CLICK, onClickBtnk)


« แก้ไขครั้งสุดท้าย: 11 พ.ค. 16, 05:00:21 โดย goddogza »

ออฟไลน์ thora

  • เด็กอนุบาลสามกำลังโต
  • ****
  • กระทู้: 435
Re: ถามเรื่อง Adobe Flash Action Script 3 หน่อยครับ
« ตอบกลับ #3 เมื่อ: 11 พ.ค. 16, 09:12:03 »
มันขึ้นอยู่กับว่า บนเฟรม 1 นี้มีคำสั่งอะไรอยู่บ้าง แล้ววัตถุที่อ้างอิงกับคำสั่งยังอยู่หรือว่ามีการเปลี่ยนแปลงมันไปแล้ว

ตามนี้เลยครับ มันบอกอยู่ชัดๆ ลำดับการทำงานต้องอ่าน error จากล่างขึ้นบนครับ
at _fla::MainTimeline/onClickBtnho2()----ผ่านตรงนี้แล้ว
at flash.display::MovieClip/gotoAndStop()----ผ่านตรงนี้แล้ว
at _fla::MainTimeline/frame1()----จุดล่าสุดก่อนเกิดปัญหา

ดังนั้นจุดที่เป็นปัญหาคือเฟรม 1 จาก timeline ดังนั้นก็ต้องรู้ก่อนว่าในเฟรมนี้มีคำสั่งอะไรบ้างทั้งหมด เพราะต้องมาแกะดูว่าคำสั่งไหนอ้างอิงอะไรบ้าง และก็ต้องมาหาว่าตัวอ้างใดที่หายไปครับ ขอย้ำว่าทั้งหมดครับ ที่อยู่ใน at _fla::MainTimeline/frame1()
ควรวางลำดับความคิดเราก่อน ก่อนที่จะลงมือทำ

ออฟไลน์ Sunghyzens

  • เด็กเตรียมอนุบาล
  • *
  • กระทู้: 1
Re: ถามเรื่อง Adobe Flash Action Script 3 หน่อยครับ
« ตอบกลับ #4 เมื่อ: 20 เม.ย. 17, 09:33:59 »
ผมยังหาวิธีแก้่ไม่เจอเลยละครับลองทำตามดูแล้ว

ออฟไลน์ thora

  • เด็กอนุบาลสามกำลังโต
  • ****
  • กระทู้: 435
Re: ถามเรื่อง Adobe Flash Action Script 3 หน่อยครับ
« ตอบกลับ #5 เมื่อ: 21 เม.ย. 17, 01:52:12 »
ที่ at _fla::MainTimeline/frame1() คือจุดที่เกิดปัญหา
Cannot access a property or method of a null object reference.
แปลว่า property หรือ method ของ object ที่คุณเรียก มันไม่มี หรือหาไม่เจอ
ดูที่ code ว่าเรียกอะไรไปบ้าง ทั้งวัตถุ ฟังก์ชัน ตัวแปร โดยเฉพาะสิ่งที่อยู่หลังจุด เช่น bedroom.sexyGirls เช็คให้แน่ใจว่าใน bedroom มี sexyGirls รอให้เรียกอยู่จริงหรือไม่
อ่าน error ให้ออกครับ มันหาและแก้ไม่ยาก เพราะมันไม่โกหกเรา แค่คุณต้องไล่เช็คดูให้ครบทุกจุด
วิธีเช็คก็แค่ สงสัยว่าสิ่งไหนมีจริงหรือไม่ ก็ trace สิ่งนั้นก่อนที่จะเรียกใช้ก็จะได้คำตอบแล้ว
โค๊ด: [Select]
trace("bedroom >>>>>" + bedroom);//เช็คว่า bedroom มีหรือไม่
trace(bedroom.sexyGirls ">>>>>" + bedroom.sexyGirls);//เช็คว่า bedroom.sexyGirls มีหรือไม่
//---------ข้างล่างถัดไปนี้จึงเป็นคำสั่งใช้งาน bedroom.sexyGirls
เช็คแบบนี้ทุกจุด เวลามาอะไรก็จะรู้ทันทีว่ามันหาอะไรไม่เจอ คุณจะได้รู้ว่าคุณทำผิดตรงไหน
ควรวางลำดับความคิดเราก่อน ก่อนที่จะลงมือทำ