สอนโหลด swf ทีจ้ะห์

เริ่มโพสต์โดย Layiji, 22 มี.ค. 2007, 22:02 น.

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

Layiji

อันนี้ขอถามหลักการคร่าวๆ กับคำสั่งสำคัญในการทำงานสักนิดครับ

สมมุติว่าผมจะทำหนังสือรุ่น (แบบออนไลน์)
ทีนี้เรื่องข้อมูลผมอยากแยกเป็น swf เป็นคนๆไปน่ะครับ

เราจะมีวิธีการจัดการเรียกไฟล์มาโชว์อย่างไร และ การ load แต่ละหน้าขึ้นมาควรทำในตัวไหน (ตัวหลัก หรือ swfแต่ละคน)


ขอบคุณครับ
นักเขียนการ์ตูนรายปี

iannnnn

วิธีที่ผมใช้นะครับ
คนอื่นอาจทำได้ดีกว่าแต่ลองดูวิธีผมก่อนนะ
- สร้างตัวแม่ขึ้นมาตัวนึงนะครับ สมมติชื่อ main.swf
- ให้ตัวแม่นี่แหละโหลดตัวลูกเข้ามา (01.swf / 02.swf /03.swf / ... )

โดยการโหลดตัวลูกเข้ามาเนี่ย ให้เปิดตัวแม่
แล้วสร้าง Blank MC ขึ้นมาตัวนึง สมมติให้ชื่อว่า ref
แล้วก็ใส่คำสั่งว่า

_root.ref.loadMovie("01.swf")


หรืออะไรก็ว่าไปครับ :42:

ส่วนตัวลูกก็ออกแบบไปเลยตามสเบย

จักรี

ความรุ้ใหม่ครับ  :25:

ส่วนผมจะทำยากกว่าพี่แอนหน่อย สร้าง  Blank MC01, 02 และ03 เอาไว้ที่ เฟรม มี swf 3 ตัวก็สามเฟรม สั่ง stop มันซะทุกเฟรม จากนั้น เฟรมหนึ่งก็ ใช้ loadMovie("1.swf",Blank MC01");  เฟรมสอง ก็  loadMovie("2.swf",Blank MC02"); เฟรมสามก็  loadMovie("3.swf",Blank MC03");

แล้วก็ ใช้วิธี สร้างปุ่มในเลเยอร์ใหม่ คลิกปุ่มที่หนึ่งไปเฟรม1 คลิกปุ่มที่2ไปเฟรม2 ... 3ไป3 ......
ล้ำลึกคนึงหาในดวงจิต ใจเคยคิดตัดสวาทมิอาจสิ้น
ดั่งก้านบัวหักกลางชลาสินธุ์ ผิว่าสิ้นไร้เยื่อยังเหลือใย

poloh

#3
ทำ loading ที่ swf ลูกดีกว่ามั้งครับ

น่าจะเขียนโค้ดได้ง่ายกว่า

เดี่ยวผมลองเสร็จ จะมาตอบใหม่ละกันครับ

-----------------------------------------------------
ทำที่ตัวลูกดีกว่าครับ
ก็เขียนโค้ด loading เหมือนปกติเลย
คือประมาณนี้

percent = (this.getBytesLoaded() / this.getBytesTotal())*100
this.loadBar._width = percent;
this.loadText = Math.round(percent)+"%";
if (percent == 100 ) {
  this.gotoAndStop(3);
}

อ้างอิงจาก http://www.thaiflashdev.com/board/index.php?showtopic=10420&hl=
แต่ให้ระวังปัญหานึงคือ

ถ้าเรามีการเรียกใช้ _root ที่ตัวลูก

มันจะไปหมายถึง _root ที่ตัวแม่ด้วย

แต่สามารถ ป้องกันปัญหานี้โดยการ
lock ไม่ให้ _root ของตัวลูกมาถึงแต่แม่
ด้วยการใส่
_lockroot = true
ที่ timeline แรกของตัวลูก
แอบอ้างจากhttp://www.thaiflashdev.com/board/lofiversion/index.php/t11331.html

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

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

- -
วิธีของเฮียแอนครับ ผมก็ใช้

ส่วน preload ผมทำแบบพี่ poloh ครับ..


iannnnn

โอ๊ะ :25:


การใส่ _lockroot = true นี่ทำให้เวลาเราสั่ง _root ที่ตัวลูกปั๊บ
มันจะหมายถึง root แค่ในตัวลูกใช่ไหมครับ ไม่ลามมาถึงตัวแม่

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

#6
_lockroot มีผลทั้ง movie นั้นครับ (ลามถึงตัวแม่ด้วย)
คือถ้าเปลี่ยน _root ไปอยู่ที่ movie clip ใดแล้ว

_root ทุกที่ จะไปเรียกหา mc นั้นเลยครับ
...

ระวังด้วยนะครับ - -"

ป.ล. ผมไม่ได้ใช้ _lockroot ครับ เพราะมันวุ่นวาย

iannnnn

แล้วถ้าจะอ้าง _root ของตัวลูก จากตัวลูกเฉยๆ นี่
ต้องเรียกลามตั้งกะ _root ใหญ่เลยหรือเปล่าครับ

เช่น _root.ref.blablabla (ในกรณีที่ mc ที่ตูเรียกลูกเด็กเล็กแดงมาแปะไว้ชื่อ ref)

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


iannnnn


Layiji

ผมก็ไม่เข้าใจเรื่อง _root แต่จะทำเป็นภาพให้  โดยการถามตาแอนนี่แหละ  :30:

อันนี้คือเราจะเรียก mc1 กระทำอะไรซักอย่างโดยเรียกจาก timeline หลัก
นักเขียนการ์ตูนรายปี

Layiji


สั่งจาก mc ตัวอื่นๆก็ได้ครับ
นักเขียนการ์ตูนรายปี

iannnnn

มันจะยิ้มทำไมที่มุมปาก :39:

Layiji


เขียนอ้างตัวเอง ใน mc ตัวเอง



หากมีการอ้างใน Mc2 แต่ ยังไม่ถึงเวลาที่ mc2จะโผล่ในจอ ก็จะไม่เกิดการกระทำ
นักเขียนการ์ตูนรายปี

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

 :30: สุดยอดเลยคร้าบบ
เห็นภาพขึ้นเยอะเลย

- -* ผมก็ไม่รู้จะอธิบายยังไงเหมือนกัน แต่เจอของพี่เลย์แล้ว..
สุดยอดครับ  :42:

SMF 2.1.7 © 2026, Simple Machines