ฟอนต์ฟอรั่ม

F0NT Community (เก่า) => ห้องคอม => ห้องแฟลช => โพสต์ถูกเริ่มโดย: iannnnn เมื่อ 03 ก.ค. 2006, 00:01 น.

ชื่อเรื่อง: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: iannnnn เมื่อ 03 ก.ค. 2006, 00:01 น.
คือเมื่อกี้คุยเอ็มกะป๋าไปเรื่อย
เลยลามมาถึงเรื่องของ XML ครับ

www.intentionallies.co.jp/content_normal.html
เห็นจากเว็บนี้แล้วโอ้ว พระเจ๊าจ๊อดบุชมากๆ เลย
เพราะเขาเอามันมาใช้ได้อย่างบ้าพลังอหังการมากๆ


ทีนี้คือคำถามครับ
ผมอยากทราบหลักการและโค้ดคร่าวๆ เบื้องต้น
เกี่ยวกับการดึงเอา XML มาแสดงผลในแฟลช

เอ้า ตัวอย่างเช่น http://www.digg.com/rss/index.xml นี่ก็ได้
เหมือนถ้าจะใช้แฟลชดึงฟีดมาแสดงนี่ ทำยังไงครับ



ขอบคุณครับ :40:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: Layiji เมื่อ 03 ก.ค. 2006, 00:05 น.
อยากให้ปูพื้นเรื่อง XML กับ RSS หน่อยน่ะครับ
เอ่อ คืองี้ ที่คุยกันเห็นว่า XML database เหมือนการใช้ TEXT FILE เก็บข้อมูล ถูกหรือเปล่า แต่ XML มีคำสั่งในตัว

แต่ทีนี้มันดีกว่า sql database ด้านไหนมั่งครับ (ความจริงอยากใช้เหมือนกัน)

อ้อ แล้วยังมีเรื่อง RSS อีกครับวอนผู้รู้ช่วยอธิบายให้เห็นภาพด้วยนะครับ แก่แล้วตามเทคโนโลยีไม่ทันซะแล้ว

พอดีสมัยก่อนเคยใช้พวก text file เก็บข้อมูลแล้วมันมีปัญหาเวลารวนแล้วหาสาเหตุไม่เจอ Xml จะสามารถเกิดอาการแบบนี้มั้ยครับ

ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: X Saint เมื่อ 04 ก.ค. 2006, 06:11 น.
ใช่คับ XML เหมือนกับการเก็บ DB ใน text file แต่มันดีกว่าไม่ใช่เพราะมีคำสั่ง เพราะจริงๆ XML เป็นแค่มาตรฐานการเก็บข้อมูล ไม่ได้มีคำสั่งอะไรในตัวเลย ที่มาคงมาจากคนคุ้นเคยกับ HTML tag เพราะมันมองง่าย และเป็นระเบียบ.. ทีนี้เลยเอามาประยุกต์ใช้กับการเก็บข้อมูลแบบ text ซึ่งแต่ละคนก็กำหนดรูปแบบเอาเอง... เช่น ตะก่อน เวลาเก็บข้อมูลสมาชิกใน text ผมอาจจะกำหนดเป็น

XSaint::แมว::xs@xs.com::01-666-6666
Layiji::หมา::lay@exe.com::06-696-9696
iannn::ยักษ์::ian@ian.com::09-444-4444


ผมติ๊ต่างใช้ :: เป็นมาตรฐานของผมเองในการแบ่ง field แล้วก็ระลึกเอาเองว่า field แรกคือ ชื่อ field ถัดมาคือสถานะ ฯลฯ... ซึ่งต้องมานั่งทำความเข้าใจ ถอดความอีกที สำหรับคนที่ไม่ใช่ผู้ตั้งมาตรฐาน

ทีนี้ถ้าผมเปลี่ยนรูปแบบให้เป็น XML ซึ่งรูปแบบคล้ายๆ <html> และทุกคนเข้าใจได้ง่ายในปัจจุบัน ก็อาจจะเป็น
<member>
     <name>XSaint</name>
     <status>แมว</status>
     <email>xs@xs.com</email>
     <mobile>01-666-6666</mobile>
</member>
<member>
     <name>Layiji</name>
     <status>หมา</status>
...
...


พอจะมองเห็นว่ามันเป็นระเบียบ และเข้าใจง่ายขึ้นหรือป่าวคับ


ทีนี้มันดีกว่า SQL ยังไง... ก็คือ จริงๆมันไม่ดีกว่า
และจริงๆก็ยังต้องใช้ SQL เหมือนกัน... เพียงแต่ว่า SQL มักจะใช้เป็นฐานข้อมูลของ server นั้นๆ เก็บไป และดึงออกมาแสดงในเว็บนั้นๆ ด้วยระบบรักษาความปลอดภัย การ access เข้าฐานข้อมูลโดยต้องมีรหัสผ่าน ซึ่งปกติมันก็ฝังอยู่ใน php asp ในส่วนที่เปิด connection ก่อนเรียกข้อมูลออกจาก SQL DB ... จึงเห็นว่าเป็นระบบภายในส่วนตัว

ทีนี้มาถึงยุคที่แชร์ข้อมูลผ่านเน็ทกัน ก็มีคนคิดว่าข้อมูลบางอย่างถ้าเรากำหนดรูปแบบกลางไว้ ระหว่างองค์กรที่อาจจะต้องการใช้ฐานข้อมูลร่วมกันบางส่วน เราก็จะแชร์ข้อมูลกันได้ เลยออกมาเป็นว่าเราแชร์ข้อมูลกันผ่านข้อมูลที่จัดรูปแบบ แบบ XML ... เช่น บ. ประกันชีวิต ต้องการแชร์ข้อมูลของลูกค้า ให้กับ โรงพยาบาล ทั้ง 2 องค์กรก็อาจจะเก็บข้อมูลตัวเองในรูปแบบ SQL DB แต่เวลาจะส่งให้กันละกัน ก็มีโปรแกรมระหว่างกลางที่เปลี่ยนรูปแบบให้อยู่ใน XML แล้วส่งไปให้อีกฝ่ายได้ ซึ่งก็เข้าใจตรงกันว่าแต่ละ Tag มีความหมายอย่างไรในการเอาไปแสดงผล หรือเก็บข้อมูลต่อไป เป็นต้น

โดยส่วนตัว ถ้าผมไม่ได้ต้องการจะแชร์ข้อมูลส่วนนั้นๆกับใคร ผมเก็บลงใน SQL DB ปกติ ผมรู้สึกว่าผมใช้ง่ายและสะดวกผมมากกว่า...

อย่างกรณี wordpress มันก็จะเก็บ entry ต่างๆลงใน SQL DB อย่างเรียบร้อย แต่ว่าพอเราอยาก RSS มันก็จะไปดึงออกมา แล้วจัดให้อยู่ในรูปแบบ XML เพื่อให้คนอื่นมา feed ไปได้ เป็นต้น

ส่วนที่ว่าใน Flash หลักๆ เราก็ใช้ส่วนนี้ในการดึงข้อมูลออกมาแสดงผลต่อไป

(http://img.f0nt.com/image/7263.jpeg)
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: Layiji เมื่อ 04 ก.ค. 2006, 10:19 น.
โอ้ เข้าใจแจ่มแจ้งเลยทีเดียวครับ

แต่มีคำถามนิดนึงครับ

ไม่รู้ว่าชาร์จผมถูกต้องหรือเปล่านะครับ

Database SQL ------ Connect DB  ด้วย PHP ----- ดึงข้อมูลมา echo ให้อยู่ในรูปแบบ XML ------ Feed อีกทีด้วยคำสั่งใน flash

อย่างนี้พอจะถูกต้องหรือเปล่าครับ แต่ผมยังสงสับตรง Echo จาก PHP ให้อยู่ในรูปแบบ XML มันสามารถทำได้ไหม หรือว่ามีวิธีการที่ดึงจาก SQL อยู่ดีๆก็เป็น XML เลยครับ
(อ้อว่าแต่ถ้าหากว่าเราต้องการใช้ข้อมูลใน sql ด้วย php สามารถทำได้เลยใช่มั้ยครับ)
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: iannnnn เมื่อ 04 ก.ค. 2006, 11:38 น.
ขอบคุณครับลุงกามพล :12: (+ให้เยอะๆ)
สมเป็นป๋าแห่งประเทศไทยในด้านนี้จริงๆ


ส่วนของป๋าเข้าใจถูกต้องแล้วครับ ตามนั้นเลย
แล้วเนื้อหาตรงที่ผมถามนี่ก็ตรงกับของป๋าพอดีครับ
ว่าด้วย

1.
มันมีไวยากรณ์อะไร หรือศัพท์บัญญัติยังไงในการ "ดึง" ออกมาใช้ในภาษา PHP
(ตามที่ผมเข้าใจไปเอง มันก็เหมือนวาน PHP ให้ชวยเขียน Text File ให้หน่อย ใช่ไหมครับ)

2.
มันมีไวยากรณ์อะไร หรือศัพท์บัญญัติยังไงในการ "ดึง" ออกมาใช้ใน Actionscript
(จากภาพเรียกน้ำย่อยข้างบนนี่แสดงว่าก่อนอื่นเราต้องแม่นกับวิธีใช้เฉพาะตัวของมันก่อน)



วิธีที่ดีที่สุดคืออยากรบกวนลุงท็อปหรือผู้รู้ท่านใดก็ได้ ช่วยยกตัวอย่างโค้ดขึ้นมาสักชุด
แบบที่ดึง xml ขึ้นมาจาก Digg นั่นก็ได้ครับ ว่าจะให้แฟลชมันออกมามีหน้าตายังไง
ขอบคุณแทนชาวโลกทุกคนครับ






ป.ล. http://en.wikipedia.org/wiki/Xml
ให้คำจำกัดความ+อธิบายการใช้งานคร่าวๆ ได้แจ๋วดีครับ
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: iannnnn เมื่อ 04 ก.ค. 2006, 11:40 น.
โอว ขอเบิ้ลเลย
คำตอบของคำถามแรกเจอแล้วครับ
http://en.wikibooks.org/wiki/Programming:PHP_and_MySQL:XML_and_PHP
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: Layiji เมื่อ 04 ก.ค. 2006, 11:56 น.
งงหนักกว่าเดิมเลย เรื่องคำสั่งครีเอท XML

แต่จับใจความได้ว่ามันสามารถสร้าง ไฟล์ .xml (ใช่นามสกุลนี้หรือเปล่า) โดยมี Tag อะไรเสร็จสรรพ และคล้ายๆกับการสร้าง TXT ไฟล์เลยอะไรอย่างนี้

ถ้าใช่ก็จบขั้นตอนการสร้าง XML แล้ว เหลือแต่ดึงเข้า flash ซึ่งจากที่เฮีย X ชี้ช่องทางให้ดูน่าติดตามมาก

อูย ไฟลุก
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: X Saint เมื่อ 04 ก.ค. 2006, 12:24 น.
คับ flowchart ที่ว่าไว้ ก็ประมาณนั้นอ่ะคับ ส่วนปลายจะเป็น Flash, XML Reader, RSS Feeder หรือ Browser ก็หลักการเดียวกันครับ... ความจริง HTML ก็จัดว่าเป็น XML อย่างนึงเหมือนกันนะ เพราะเป็นเอกสารที่สร้างตามรูปแบบมาตรฐาน XML.... Browser ก็ทำหน้าที่แปลความตามมาตรฐาน Tag ที่กำหนด ว่า b ต้องทำตัวหนานะ... อะไรแบบนี้เป็นต้น

ส่วนการให้ PHP แปลงฐานข้อมูลเป็น XML ก็อย่างที่ใน wikipedia ว่าไว้ครับ หรือว่าจริงๆ ก็ใช้ function พวกนี้ในการจัดการ

(http://img.f0nt.com/image/7266.jpeg)

ซึ่งหลักๆ เราเรียกกลไก ในการแปลงว่า พาเซ่อ (Parser) แปลไทยตรงๆ ก็ได้คับ ฮาดี

ส่วนให้ Flash อ่าน มา ต๊ะ ไว้ก่อน ... ไว้เดี๋ยวว่างๆ จะลองเขียนแบบง่ายๆดู


...
อันนี้ไม่เกี่ยว แต่พอดีตามไปอ่านใน Link wikipedia อันแรก แล้วนึกขึ้นมาได้ เอามาเล่าขำๆ

ถ้าตาม link นี้เข้าไปตรงประวัติ XML
http://en.wikipedia.org/wiki/Xml

"James Clark  (http://en.wikipedia.org/wiki/James_Clark_%28XML_expert%29) served as Technical Lead of the Working Group"

กดที่ชื่อคุณเจม คลาก เพื่อดูประวัติ... จะเข้าใจขึ้น

คือผมเคยเจอแกด้วย... ตอนนั้นผมฝึกงานที่ Nectec... แล้ว XML นี่เพิ่งกำหนดมาตรฐานเสร็จ ใหม่ถอดด้ามเลย... พี่ที่คุมฝึกงานผมก็มาบอกว่าวันนี้ให้ไปฟังบรรยายกับเค้า ก็ไปกัน 3 คนจาก แผนก... คนบรรยายก็คุณเจม คลากนี่แหล่ะ... ซึ่งตอนนั้นผมไม่เคยได้ยินคำว่า XML มาก่อนด้วยซ้ำ... แล้วมันเป็นบรรยายเหมือนภายในองค์กรครับ เล็กๆ นั่งกันรอบๆโต๊ะยาวๆ ประมาณไม่เกิน 20 คนได้ ห้องก็มืดๆ เหมือนห้องไม่พอต้องมานั่งในห้องเก็บของ... พี่แกพูดไทยได้ชัดครับ แต่ตอนบรรยายแกพูดอังกฤษ.... ซึ่งขอบอกว่าตลอดชม. พูด.... อะไร ผมฟังไม่รู้เรื่องเลย...  :28:

พอกลับมาที่ออฟฟิศ Nectec ให้ผมทำเอกสารสรุปไอ XML เนี่ย... โอ้ พระเจ้าช่วยกล้วยทอด... กูยังไม่รู้เลยว่าไอ XML เนี่ยมันคือเ.... อะไร...  :42:

สุดท้ายก็ใช้วิธีหาๆ จากในเน็ทแล้วก็ใส่ความมั่วเอา... พิมพ์เป็นเอกสารให้ Nectec ว่ามาตรฐานการกำหนด วางรูปแบบ ตลอดจนการประยุกต์ใช้ XML นี่มันมีอะไรยังไง ประมาณ 7 8 หน้า... รู้สึกทุเรศตัวเองดีแท้  :30:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: iannnnn เมื่อ 04 ก.ค. 2006, 15:57 น.
โห ยิ่งใหญ่มากๆ เลย
นี่ผมถามถูกคนแล้วใช่ไหมครับ
:08:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: X Saint เมื่อ 04 ก.ค. 2006, 16:01 น.
อ้างคำพูดจาก: iannnnn เมื่อ 04 ก.ค. 2006, 15:57 น.
โห ยิ่งใหญ่มากๆ เลย
นี่ผมถามถูกคนแล้วใช่ไหมครับ
:08:

ผิดครับ เพราะผมไม่เคยใช้เลย :30:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: Zafire06 เมื่อ 04 ก.ค. 2006, 16:21 น.
โอ้วว  :25:

เพิ่งเข้าใจชัดว่า XML คืออะไรก็วันนี้แหละ  :25:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: เต่ามาก เมื่อ 04 ก.ค. 2006, 18:39 น.
เคยพยายามอ่าน XML ในเล่มแดงน้ำเงินของตา Derek แล้วก็ยอมแพ้หลังจากอ่านไป 5 หน้า  :05:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: i-poon เมื่อ 05 ก.ค. 2006, 00:16 น.
แปลว่าถ้าผมไม่ต้องการ share ข้อมูลกับใคร ไม่ได้ดึงจาก feed ที่ไหน ก็ไม่ต้องไปบ้าพลังทำ xml แต่โหลดดื้อๆด้วย loadVariables() ผ่าน php ดีอยู่แล้วหรือเปล่าครับ  :06:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: saa3 เมื่อ 05 ก.ค. 2006, 00:42 น.
คิดถึง XML เมื่อจำเป็น ถ้าว่างแทบไม่อยากแตะ :42:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: X Saint เมื่อ 05 ก.ค. 2006, 05:01 น.
อ้างคำพูดจาก: i-poon เมื่อ 05 ก.ค. 2006, 00:16 น.
แปลว่าถ้าผมไม่ต้องการ share ข้อมูลกับใคร ไม่ได้ดึงจาก feed ที่ไหน ก็ไม่ต้องไปบ้าพลังทำ xml แต่โหลดดื้อๆด้วย loadVariables() ผ่าน php ดีอยู่แล้วหรือเปล่าครับ  :06:


ในความเห็นผม ผมว่างั้น... เพราะความสมบูรณ์ในการเก็บข้อมูลแบบ DB จริงๆ ไม่ว่าจะใช้ MySQL หรืออะไรก็แล้วแต่ มันถูกหลัก ถูกทาง ของหลักการออกแบบ DB อยู่แล้ว... การ query ต่างๆ ก็กำหนดมาตายตัวให้กับ php ที่ใช้ได้อย่างง่ายดาย และปลอดภัย... ผมเลยยังไม่เห็นความจำเป็นที่จะต้องดันทุรังเอาฐานข้อมูลทั้งหมด มาเก็บในรูปแบบ XML เลย ถ้าเราอยู่แบบระบบปิด... ยกเว้นว่าอยากลอง... ซึ่งผมก็เห็นว่ามีคนทำอยู่
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: X Saint เมื่อ 05 ก.ค. 2006, 08:02 น.
ลองเขียนให้มัน Feed จาก Digg 3 อันล่าสุด ...

ทดสอบ feed ส่วน Title, Link, Description และ digg Count ของแต่ละ Item มาแสดงผล โดยทำให้ Title กลายเป็น Link ตามที่ดึงมา แล้วก็แสดง description ด้านล่างกับ digg Count ด้านหน้า

ปลล. ถ้าเจอหน้าขาวๆ รอหน่อยนะ... รู้สึกมันโหลดช้าใช้ได้เลย  :08:

http://www.x-sense.com/temp/feedDigg.swf

ปล. ไว้มาอธิบาย.. รู้สึกจะอธิบายให้เข้าใจง่ายๆ ยากจัง... มันมั่วใช้ได้เลยนะ  :41:
ปฮ. เอาเป็นว่าทำความเข้าใจระบบโครงสร้างแบบ tree ของ XML เอาเองก่อนละกันนะคับ เพราะถ้าต้องอธิบายอีกจะยาวมั่กๆเลย
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: bubbleball เมื่อ 06 ก.ค. 2006, 01:27 น.
เป็นอีกคนนึงที่เล่นแฟลชมาก็น้านนาน แต่ไม่เคยใช้ xml เลย  :25: 

ประมาณว่างานส่วนใหญ่ก็เก็บในดาต้าเบสตลอด

แต่จากที่ฟังพวกที่ใช้ xml กันบ่อยๆ เขา็ก็จะมีอีกมุมมองนึงคือ การเก็บด้วย xml เนี่ยเวิรก์และดี ส่วนการเก็บใส่ db ค่อนข้างจะเก่า ไปแล้ว  ก็นานาจิตตัง

แบบว่ากำัลังจะใช้มัน เก็บลิงค์ รูป thumb ของ หัวข้อแต่ละอันใน blog แล้วแรนดอมมาแสดงอยู่พอดี เลยว่าจะต้องถึงเวลาลองละ   :34:

แต่พวกขา dev hard core ถ้าเขียนในแฟลช เขาจะไม่ค่อยใช้ที่ flash ให้มากันครับ เพราะมันต้องระบุ ลูก อะไรซึ่งดูงงๆ  ส่วนใหญ่เขาเลยจะนิยมไปใช้ xPath กัน

http://www.xfactorstudio.com/

ประมาณว่า มันระบุ tag เป็น ชั้นๆ เหมือนระบุ path ในมูฟวี่คลิปนั่นแหละ  (ต้องศึกษาเพิ่มอีก เหอๆ)

ฉะนั้นอย่าถามนะว่าใช้ยังไง หุๆ  ต้องไปถาม punneng นู้น

ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: iannnnn เมื่อ 06 ก.ค. 2006, 16:18 น.
โอว ลุงเอ็กซ์เอามาทำให้ดูแล้ว :25:
ขอบคุณครับ จะได้เห็นว่ามันใช้ได้จริงแล้วในอะไรที่ใกล้ตัวยังงี้ไง


อย่าคิดว่า XML มันไร้สาระนะครับ
เพราะในโลกของ Developer หัวใหม่ๆ (อย่างพวกที่ใช้ชีวิตอยู่กะ Atom Feed หรืออะไรที่เป็นการแชร์ในโลกของ Web 2.0)
เขากำลังเล่นเรื่องพวกนี้กันอยู่ เลยต้องทำความเข้าใจกะมันไว้ล่วงหน้าไงล่ะ




ป.ล.
ลองดู http://tenbyten.org
นี่เป็นเว็บที่จุดประกายไอเดียเรื่องการเล่น Flash กะ XML ครับ
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: X Saint เมื่อ 07 ก.ค. 2006, 00:33 น.
อ้างคำพูดจาก: iannnnn เมื่อ 06 ก.ค. 2006, 16:18 น.
อย่าคิดว่า XML มันไร้สาระนะครับ
เพราะในโลกของ Developer หัวใหม่ๆ (อย่างพวกที่ใช้ชีวิตอยู่กะ Atom Feed หรืออะไรที่เป็นการแชร์ในโลกของ Web 2.0)
เขากำลังเล่นเรื่องพวกนี้กันอยู่ เลยต้องทำความเข้าใจกะมันไว้ล่วงหน้าไงล่ะ


ไม่ได้บอกว่ามันไร้สาระสักหน่อย  :08:
แค่บอกว่ามันไม่ได้ใช้แทนที่ DB เพราะความจริงแล้วจุดประสงค์ต้นกำเนิดมันแตกต่างกันหาก
ถ้าเข้าใจและใช้ให้ถูกก็จะรู้ว่ามันไม่ใช่ของแทนที่กัน... SQL DB ก็ยังต้องใช้ XML ก็ใช้ ต่างวัตถุประสงค์กันไง ไม่ได้เอามาล้มล้างกัน... พอๆกับที่ AS2 AS3 ไม่ได้มาล้มล้างหรือแทนที่ AS เพียงแต่เป็นส่วนขยายเพิ่มเติมต่างหาก  :26:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: iannnnn เมื่อ 07 ก.ค. 2006, 00:39 น.
ใครว่าลุง :09:


ผมว่าไอ้เร่
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: Black-Pigeon เมื่อ 08 ก.ค. 2006, 05:31 น.
แล้วตูโผล่มาได้ไง :05:
(ไม่ได้แตะคอมพิวเตอร์ มา 2 เดือนกว่า :05:)
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: iannnnn เมื่อ 08 ก.ค. 2006, 05:32 น.
:25:เฮ้ย ใครนี่ สาวกใหม่แนะนำตัวด่วนครับ
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: Zafire06 เมื่อ 08 ก.ค. 2006, 12:31 น.
:39:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: i-poon เมื่อ 09 ก.ค. 2006, 00:47 น.
ผมไม่ได้เห็นว่า xml มันไร้สาระนะพี่

แต่เป็น flash+xml ต่างหาก  :29:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: Black-Pigeon เมื่อ 17 ก.ค. 2006, 15:53 น.
ใครเขียน html ที่เป็นคนยุคใหม่ ควรจะเขียนอย่างนี้นะยะ
เช่น เมื่อก่อนแทก
  จะเขียน แบบโดดๆ อย่างนี้ได้

แต่คนยุคใหม่ควรเขียน

 หรือ
</br>

นะยะ  :27: :27: :27:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: Zafire06 เมื่อ 17 ก.ค. 2006, 18:36 น.
อ้างคำพูดจาก: นกพิราบสีดำ เมื่อ 17 ก.ค. 2006, 15:53 น.
ใครเขียน html ที่เป็นคนยุคใหม่ ควรจะเขียนอย่างนี้นะยะ
เช่น เมื่อก่อนแทก <br>  จะเขียน แบบโดดๆ อย่างนี้ได้

แต่คนยุคใหม่ควรเขียน
<br /> หรือ <br></br>

นะยะ  :27: :27: :27:

ขยายความครับ  :42:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: WuTtY เมื่อ 02 ก.ค. 2007, 15:55 น.
พอดีหัดเล่น flash เลยเข้ามาช่วยตอนใน กระจู๋ นี้นะครับ ไม่รู้ยังจะมีคนอ่านอีกหรือเปล่า (ไม่มีใครอ่านมาจะ 1 ปีแล้ว)

การนำ XML มาใช้งานจริงๆ แล้วหลัก ๆ มี 2 วิธีที่ต่างกันคือ
1. SAX
2. DOM

โดยคร่าว ๆ ทั้ง 2 วิธี ต่างกันตรงวิธีการ parse XML เข้ามาใช้งาน SAX จะเป็น event driven เหมือนทำ listener ให้ใช้งานแบบใน flash ส่วน DOM ก็เป็น tree Structure ใช้งานได้เลย

ปัจจุบันนิยมใช้ DOM กันมากกว่าเพราะ อ้างถึงได้ง่าย แต่ถ้าเทียบกับ XML file ใหญ่ ๆ แล้ว SAX จะเร็วกกว่ามาก เพราะ DOM จำเป็นต้อง parse เข้ามาทั้ง file XML แต่เดี๋ยวนี้เครื่องแรง ๆ แล้ว DOM ก็เลยไม่ค่อยช้าเท่าไหร่

ตัวอย่าง class / function ของ php ที่ยกมานั้นเป็น DOM นะครับ ดังนั้นก่อนการใช้ XML ทั้ง php รวมทั้ง flash ด้วยมั้ง ต้อง check ก่อนว่า class / function นั้นเรียกใช้งาน หรือ parse XML แบบไหนแน่นอนว่าวิธีใช้ไม่เหมือนกัน

แนะนำว่าลองศึกษา tree structure ของ DOM ดูก่อนนะครับ เท่าที่ดู lib ใน AS2.0 ของ flash ก็เป็น DOM เหมือนกัน

ส่วนการใช้งานกับ php + flash ก็ให้ php มันพ่น XML ออกมาใน format ที่ถูกตามที่เราเขียนไว้ใน flash ก็ใช้งานได้แล้วครับ php มี class ให้ array --> XML ออกมาได้เลยก็มี

flash + XML ไม่ไร้สาระซะทีเดียวนะครับ มันมีประโยชน์ของมันในแง่ การแบ่งงานกันทำ เช่น คนทำ UI client กับคนทำ php ที่ server
1. ถ้าใช้ text format ธรรมดา โดยใช้ ; เป็นตัวแบ่ง field เมื่อมีการ "แทรก" field ลงไปใน format ก็ต้อง แก้ code ใหม่ถูกมั้ยครับ
2. ถ้าไม่ใช้ text format ให้ php มันพ่นออกมาเป็น AS เลยก็ได้นิ ง่ายกว่าอีก แต่ปัญหาคือ คนทำ php จำเป็นต้องรู้ action script ด้วย ซึ่งก็ต้องเสียเวลาศึกษาอีก
3. ถ้าเป็น XML การที่เราจะเปลี่ยน client จาก flash เป็นตัวอื่น ๆ ที่ support XML มันก็ง่าย เช่น อาจจะทำ client เป็น VB / JSP ฯลฯ โดยที่ ฝั่ง server ไม่ต้องเสียเวลาเขียน code ใหม่เลย
4. นึกไม่ออกล่ะ

XML มันก็เลยได้รับความนิยมขึ้นเรื่อย ๆ ๆ ๆ ๆ ๆ

ปล. ระวังเรื่อง format ของ XML นะครับ ถ้าผิดแล้ว parse ที่เราเอามาใช้มัน parse ไม่ออก มันจะอ้างถึง element ที่ต้องการไม่ได้
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: คนตาบอดข้างเดียว เมื่อ 03 ก.ค. 2007, 22:57 น.
อ้างคำพูดจาก: uuuuuɐı เมื่อ 03 ก.ค. 2006, 00:01 น.

www.intentionallies.co.jp/content_normal.html


ไอ้เวบนี้ใครทำเนี่ย ทำซะเว่อร์เลย
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: heart เมื่อ 11 ก.ค. 2007, 09:55 น.
myXML = new XML();    สร้างออปเจกต์ XML ไว้เตรียม

myXML.onLoad = function(){     อีเวนต์ถ้ามีการโหลดของออปเจกต์ myXML จะทำอะไร
     if(myXML.loaded){       ถ้าโหลดครบแล้ว (loaded จะมีค่าเป็น true )
          trace(myXML);         ให้ทำอะไรก็ว่าไป
     }
}

myXML.load("http://www.url rss feed");   โค้ดด้านบนจะไม่ทำงานถ้าไม่มีการโหลด xml เข้ามาเลย บรรทัดนี้คือการสั่งโหลด



เอาโค้ดง่ายๆมาฝากครับ
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: ยุนเอ เมื่อ 11 ก.ค. 2007, 09:58 น.


ขอบคุณครับ  :46:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: WuTtY เมื่อ 11 ก.ค. 2007, 14:40 น.
จะลองเอาไปใช้ดูครับ  :46:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: กากก่อเกรียนนู้บ เมื่อ 16 ก.ค. 2007, 02:57 น.
อ้างคำพูดจาก: heart เมื่อ 11 ก.ค. 2007, 09:55 น.
myXML = new XML();    สร้างออปเจกต์ XML ไว้เตรียม

myXML.onLoad = function(){     อีเวนต์ถ้ามีการโหลดของออปเจกต์ myXML จะทำอะไร
     if(myXML.loaded){       ถ้าโหลดครบแล้ว (loaded จะมีค่าเป็น true )
          trace(myXML);         ให้ทำอะไรก็ว่าไป
     }
}

myXML.load("http://www.url rss feed");   โค้ดด้านบนจะไม่ทำงานถ้าไม่มีการโหลด xml เข้ามาเลย บรรทัดนี้คือการสั่งโหลด



เอาโค้ดง่ายๆมาฝากครับ


เห็นแล้วมันเขี้ยวขอต่อหน่อยนะครับ  :42:
แหะๆ เอาง่ายๆ 2 ตัวก่อน

myXML.firstChild = เรียกแท็กแรก
myXML.firstChild.childNodes = เรียกแท็กลูกของแท็กแม่ ถ้ามีหลาย node จะเก็บเป็นอาร์เรย์ครับ เช่น

XML
อ้างอิง<page>
   <title>blahblahblah</title>
   <subtitle>xxxxxxxx</subtitle>
   <content>oooooooooo</content>
</page>

Flash
myXML.firstChild = เรียกหา <page>
myXML.childNodes = เรียกหาแท็กที่อยู่ใต้ <page> ทั้งหมด
- myXML.firstChild.childNodes[0] = <title>
- myXML.firstChild.childNodes[1] = <subtitle>
- myXML.firstChild.childNodes[2] = <content>

มีข้อข้องใจถามต่อได้ครับ ^^
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: เต่ามาก เมื่อ 16 ก.ค. 2007, 05:19 น.
 :25:
พี่ก่อส์

TFD ปิดมา 2 เดือนแล้วง่ะ  :05:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: X11 เมื่อ 16 ก.ค. 2007, 09:45 น.
อ้างคำพูดจาก: เร็วจี๋ยอดอาชา เมื่อ 03 ก.ค. 2007, 22:57 น.
ไอ้เวบนี้ใครทำเนี่ย ทำซะเว่อร์เลย
www.intentionallies.co.jp/content_normal.html  ถ้าไม่ผิดของ Yuko Nakamura

http://www.designmuseum.org/design/yugo-nakamura
http://www.yugop.com/ver2/
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: คนตาบอดข้างเดียว เมื่อ 16 ก.ค. 2007, 10:26 น.
อุ๊ แม่เจ้า :08:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: กากก่อเกรียนนู้บ เมื่อ 16 ก.ค. 2007, 13:11 น.
อ้างคำพูดจาก: เ_่า เมื่อ 16 ก.ค. 2007, 05:19 น.
:25:
พี่ก่อส์

TFD ปิดมา 2 เดือนแล้วง่ะ  :05:

T^T นั่นสิ เต่าส์
ทำไงดีหง่า.. พี่ยิ่งอยากได้ Tutorial เก่าๆ ที่เคยโพสต์ไว้ด้วยล่ะ

อ้างคำพูดจาก: เร็วจี๋ยอดอาชา เมื่อ 16 ก.ค. 2007, 10:26 น.
อุ๊ แม่เจ้า :08:

:04:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: iannnnn เมื่อ 16 ก.ค. 2007, 17:11 น.
อ้าว แล้วตอนนี้ใครเป็นยักษ์ของเว็บนั้นละครับ :09:
มีปัญหาอะไรกันหรือเปล่าเลยปิดไป
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: คนตาบอดข้างเดียว เมื่อ 17 ก.ค. 2007, 00:04 น.
ช่วงนี้เวบฟร้อนทำติวเตอร์แข่งเลยสิ
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: heart เมื่อ 17 ก.ค. 2007, 16:37 น.
TFD ล่ม

ติดต่อ idesign ข้างเมเจอรัชโยธิน

หุๆๆๆ
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: คนตาบอดข้างเดียว เมื่อ 17 ก.ค. 2007, 19:44 น.
แผนการตลาดนี่เอง
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: กากก่อเกรียนนู้บ เมื่อ 18 ก.ค. 2007, 18:12 น.
อ้างคำพูดจาก: uuuuuɐı เมื่อ 16 ก.ค. 2007, 17:11 น.
อ้าว แล้วตอนนี้ใครเป็นยักษ์ของเว็บนั้นละครับ :09:
มีปัญหาอะไรกันหรือเปล่าเลยปิดไป

พี่ตรีครับ เห็นว่าจะปรับปรุงบอร์ด จะ launch เดือนมิ.ย....

ตอนนี้จะ ส.ค. แล้ว ยังไม่โผล่เลยครับ  :05:

ป.ล. พี่ตรีเปิด รร. สอนกราฟิกชื่อ iDesign อยู่ข้างเมเจอร์รัชโยธิน
ป.อ. อ้าว พี่ฮาร์ทบอกไปแล้วเหรอครับ  :35:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: iannnnn เมื่อ 18 ก.ค. 2007, 19:24 น.
เพื่อนตูเคยไปเรียนมาแล้วนะ เมื่อปีสองปีก่อน
คอร์สละเป็นหมื่นแน่ะ แต่ตอนนี้ลืมหมดแล้ว :30:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: aodTo เมื่อ 26 ก.ค. 2007, 02:19 น.
สวัสดีครับ น้องใหม่ อิอิอิอิ ครับ
โพสเป็น กระทู้แรก

เข้ามาที่บอร์ดนี้โดยบังเอิญ คือหาบอร์ดที่เกี่ยวกับ flash
เพราะเห็น TFD ปิดนานแล้ว
ไม่เห็นเปิดสักที

มาบอร์ดนี้
คุ้นๆ ชื่อ User เยอะเลย
อิอิ

------------------------------------------------------------------
เห็นคุยกันสนุกอยากเข้ามาคุยบ้าง  :43:
คงไม่ว่ากันนะครับ

:43:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: iannnnn เมื่อ 26 ก.ค. 2007, 02:31 น.
ยินดีต้อนรับจ้ะ :22:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: X Saint เมื่อ 26 ก.ค. 2007, 03:14 น.
โดนคุณ nuut ตามมาให้ทำ tutorial ต่อตั้งหลายวันมาแล้ว รับปากว่าจะมาต่อแต่ยังไม่ได้ทำอะไรเลย  :16:
จริงๆ ผมเพิ่งรู้ว่า tutorial อันก่อนผมยังทำไม่จบ ... ผมเข้าใจว่าผมทำจบไปแล้วตั้งแต่ตอนนู้น...  :08: จำไม่ได้ด้วยว่าทำไมอยู่ๆ หยุดไป เดาว่าช่วงนั้นอยู่ๆ งานยุ่งมาก เลยไม่ได้เข้ามาช่วงนึงแล้วก็ลืมไปแล้วว่ายังไม่จบ  :08: กลับไปเปิดดูอีกทีผมก็จำไม่ได้แล้วด้วยว่าผมต้องทำอะไรต่อ  :01:

เดี๋ยวกลับมาทำเรื่อง XML อ่าน RSS ให้ต่อละกันครับ
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: iannnnn เมื่อ 26 ก.ค. 2007, 03:15 น.
ขอบคุณครับ!! :25:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: จักรี เมื่อ 26 ก.ค. 2007, 03:25 น.
ขอบคุณด้วยคนครับ   ตอนนี้ งานช้างของผมเลยละไอ้ xml เนี่ย   :39:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: ยุนเอ เมื่อ 26 ก.ค. 2007, 08:14 น.


ตามหาช้างด้วย wml  :25:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: aodTo เมื่อ 26 ก.ค. 2007, 15:20 น.
ผมพอจะมีตัวอย่างงานพวก Flash + XML บ้างครับ
ลองดูแล้วกัน
เป็นการทำระบบ Login โดยใช้ Flash + XML + ShareedObject
ไม่มีไรทำ ก็เลยลองทำเก็บไว้ตั้งนานแหละ  :42:



http://kmutt-it-wannapong.orgfree.com/portforio/register_class_complete.swf

ดาวน์โหลดไฟล์ตัวอย่าง : http://kmutt-it-wannapong.orgfree.com/portforio/SharedObject_XML.zip




/*
ลาก Label Component มาไว้ใน Libraly
ลาก TextInput Component มาไว้ใน Libraly
ลาก Button Component มาไว้ใน Libraly
ลาก DataGrid Component มาไว้ใน Libraly
*/

import mx.controls.Label;//import เข้ามาเพื่อใช้ในการสร้าง Label Component
import mx.controls.TextInput;//import เข้ามาเพื่อใช้ในการสร้าง TextInput Component
import mx.controls.Button;//import เข้ามาเพื่อใช้ในการสร้าง Button Component
import mx.controls.DataGrid;//import เข้ามาเพื่อใช้ในการสร้าง DataGrid Component
import mx.controls.gridclasses.DataGridColumn;//import เข้ามาเพื่อใช้ในการสร้างส่วนหัวของ DataGrid Component


//---------------------------------------------------------------------
startInput_x=250;//กำหนดตำแหน่งเริ่มต้นในแนวแกน    x ของ Object ที่วางบน   Stage
startInput_y=50;//กำหนดตำแหน่งเริ่มต้นในแนวแกน    y ของ Object ที่วางบน   Stage
depth=0;//กำหนดลำดับชั้นของ Object ที่วางบน   Stage
//----------------------------------------------------------------------
// สร้างข้อความขึ้นมา  ชื่อ user_label โดยมีค่าเท่ากับ Username :
createClassObject(Label,"user_label",depth++);
user_label.text="Username : ";
user_label.setSize(200,22);
user_label.move(startInput_x-100,startInput_y);
// สร้างช่องกรอกข้อความขึ้นมา  ชื่อ user_login
createClassObject(TextInput,"user_login",depth++);
user_login.setSize(200,22);
user_login.move(startInput_x,startInput_y);
//-----------------------------------------------------------------------
// สร้างข้อความขึ้นมา  ชื่อ pwd_label โดยมีค่าเท่ากับ Password :
createClassObject(Label,"pwd_label",depth++);
pwd_label.text="Password : ";
pwd_label.setSize(200,22);
pwd_label.move(user_label._x,user_label._y+user_label._height+2);
// สร้างช่องกรอกข้อความขึ้นมา  ชื่อ pwd_login
createClassObject(TextInput,"pwd_login",depth++,{password:true});
pwd_login.setSize(200,22);
pwd_login.move(startInput_x,user_login._y+user_login._height+2);
//-----------------------------------------------------------------------
// สร้างข้อความขึ้นมา  ชื่อ repwd_label โดยมีค่าเท่ากับ RePassword :
createClassObject(Label,"repwd_label",depth++);
repwd_label.text="RePassword : ";
repwd_label.setSize(200,22);
repwd_label.move(pwd_label._x,pwd_label._y+pwd_label._height+2);
// สร้างช่องกรอกข้อความขึ้นมา  ชื่อ repwd_login
createClassObject(TextInput,"repwd_login",depth++,{password:true});
repwd_login.setSize(200,22);
repwd_login.move(startInput_x,pwd_login._y+pwd_login._height+2);
//-----------------------------------------------------------------------
// สร้างปุ่มเอาไว้กดเพื่อสมัครสมาชิก ชื่อ btn_submit โดยมีข้อคามบนปุ่มว่า Submit
createClassObject(Button,"btn_submit",depth++,{label:"Submit"});
btn_submit.setSize(100,22);
btn_submit.move(startInput_x,repwd_label._y+repwd_label._height+5);
// สร้างปุ่มเอาไว้กดเพื่อ Clear ค่าที่กรอก  ที่ช่องกรอกข้อความ  ชื่อ btn_cancel โดยมีข้อคามบนปุ่มว่า Cancel
createClassObject(Button,"btn_cancel",depth++,{label:"Cancel"});
btn_cancel.setSize(100,22);
btn_cancel.move(startInput_x+btn_submit._width+5,repwd_label._y+repwd_label._height+5);
//---------------------------------------------------------------------------------------------------








//---------------------------------------------------------------------------------------------------
// สร้างข้อความขึ้นมา  ชื่อ listuser_label โดยมีค่าเท่ากับ --- มีสมาชิกทั้งหมด ---
createClassObject(Label,"listuser_label",depth++);
listuser_label.text="--- มีสมาชิกทั้งหมด ---";
listuser_label.setSize(200,22);
listuser_label.move(startInput_x+50,btn_submit._y+btn_submit._height+20);

//เป็นการสร้าง DataGrid Component ขึ้นมาชื่อ my_dg
createClassObject(DataGrid,"my_dg",depth++,{sortableColumns:false});
my_dg.setSize(400, 200);
my_dg.move(repwd_label._x,listuser_label._y+listuser_label._height+5);

/* เำพิ่มชื่อคอลัมเข้า Component DataGrid
- สร้าง Object  ชื่อ  user_dgc และกำหนดให้เวลาเราอ้างอิงตอนแพิ่มข้อมูลเข้า COlumn ชื่อว่า username_dgc
- กำหนดความกว้าง เท่ากับ 200
- ที่หัวของ Column แสดงข้อความว่า  Username
- เพิ่ม Column ที่สร้างขึ้นและกำหนดค่าต่างๆไว้เข้า Component DataGrid ชื่อ my_dg
*/
var user_dgc:DataGridColumn = new DataGridColumn("username_dgc");
user_dgc.width = 200;
user_dgc.headerText = "Username";
my_dg.addColumn(user_dgc);

/* เำพิ่มชื่อคอลัมเข้า Component DataGrid
- สร้าง Object  ชื่อ  pwd_dgc และกำหนดให้เวลาเราอ้างอิงตอนแพิ่มข้อมูลเข้า COlumn ชื่อว่า password_dgc
- กำหนดความกว้าง เท่ากับ 200
- ที่หัวของ Column แสดงข้อความว่า  Password
- เพิ่ม Column ที่สร้างขึ้นและกำหนดค่าต่างๆไว้เข้า Component DataGrid ชื่อ my_dg
*/
var pwd_dgc:DataGridColumn = new DataGridColumn("password_dgc");
pwd_dgc.width = 200;
pwd_dgc.headerText = "Password";
my_dg.addColumn(pwd_dgc);
//----------------------------------------------------------------------------------

/* สร้างปุ่มเอาไว้ลบชื่อที่เราเลือกชื่อที่อยู่บน Component DataGrid
- สร้างปุ่มชื่อ btn_delUser มีข้อความบนปุ่มว่า DeleteUser
- กำหนดความกว้าง เท่ากับ 400 สูง   200
- กำหนดตำแหน่ง x เท่ากับค่า startInput_x ซึ่งมีค่าเท่ากับ 250 ลบด้วย 100
    และตำแหน่ง y เืท่ากับตำแหน่ง y ของ Component DataGrid บวกด้วกความสูงของ Component DataGrid บวกด้วย 5
*/
createClassObject(Button,"btn_delUser",depth++,{label:"DeleteUser"});
btn_delUser.setSize(400,22);
btn_delUser.move(startInput_x-100,my_dg._y+my_dg._height+5);
//----------------------------------------------------------------------------------









//----------------------------------------------------------------------------------
//Listener Other........
//----------------------------------------------------------------------------------
//button submit
function listener_submit(){
if(user_login.text==""){
Selection.setFocus("user_login");
}else if(pwd_login.text==""){
Selection.setFocus("pwd_login");
}else if(repwd_login.text==""){
Selection.setFocus("repwd_login");
}else if(pwd_login.text!=repwd_login.text){
pwd_login.text="";
repwd_login.text="";
Selection.setFocus("pwd_login");
}else{
newUser();
}
}
btn_submit.addEventListener("click",listener_submit);

//button cancel
function listener_cancel(){
user_login.text="";
pwd_login.text="";
repwd_login.text="";
Selection.setFocus("user_login");
}
btn_cancel.addEventListener("click",listener_cancel);

//button delUser
function listener_delUser(){
delUser(my_dg.selectedIndex);
}
btn_delUser.addEventListener("click",listener_delUser);

//Label user_login
function listener_Label_userLogin(){
if(user_login.text=="มีผู้ใช้งานชื่อนี้แล้ว กรุณาใช้ชื่อใหม่"){
user_login.text="";
}
}
user_login.addEventListener("focusIn",listener_Label_userLogin);
//-------------------------------------------------------------------------------------






//---------------------------------------------------------------------------------------
// สร้าง Object และทำการค้นหาไฟล์ SharedObject ชื่อ  register_xml และดึงค่ามาเก็บไว้ใน Object so
// แต่ถ้าทำการค้นหาไฟล์ SharedObject ชื่อ  register_xml ไม่เจอก็จะสร้างไฟล์ SharedObject ชื่อ  register_xml.sol ขึ้นมาใหม่
so=SharedObject.getLocal("register_xml","/");

//ถ้า so.data.register_xml เท่ากับ undefined แสดงว่ายังไม่มีการสร้างตัวแปรตัวนี้
if(so.data.register_xml==undefined){
// สร้าง Object register_xml เป็นแบบ XML
so.data.register_xml=new XML();

// สร้าง Node ของ XML ขึ้นมา 4 Node โดยใช้ Method createElement()
var rootNode = so.data.register_xml.createElement("system");
childNode = so.data.register_xml.createElement("register");
username = so.data.register_xml.createElement("username");
pwd = so.data.register_xml.createElement("password");

// เพิ่ม  Node ที่สร้างขึ้นมาใหม่  เข้า  Object register_xml
so.data.register_xml.appendChild(rootNode);
rootNode.appendChild(childNode);
childNode.appendChild(username);
childNode.appendChild(pwd);

// สร้าง text Node ของ Node ต่างๆที่สร้างขึ้นโดยใช้ Method createTextNode()
var username_value:XMLNode = so.data.register_xml.createTextNode("admin");
var pwd_value:XMLNode = so.data.register_xml.createTextNode("1234");

// เพิ่ม Text Node เข้า  XML Node
username.appendChild(username_value);
pwd.appendChild(pwd_value);

// สั่งลให้ Save ข้อมูลต่างๆ เข้า SharedObject โดยใช้ Method flush()
so.data.flush();

}

//---------------------------------------------------------------------------------------------------------------------










//--------------------------------------------------------------------------------------------------------
function showUser(){
my_dg.removeAll();
for(i=0;i<so.data.register_xml.firstChild.childNodes.length;i++){
my_dg.addItem({username_dgc:so.data.register_xml.firstChild.childNodes[i].childNodes[0].firstChild.nodeValue,password_dgc:so.data.register_xml.firstChild.childNodes[i].childNodes[1].firstChild.nodeValue,data:so.data.register_xml.firstChild.childNodes[i].childNodes[0].firstChild.nodeValue});
}
}
showUser();

function newUser(){
checkUser=false;
// วนเช็คว่ามีชื่ออยู่แล้วหรือไม่  ถ้ามีก็จะทำให้ checkUser มีค่าเท่ากับ true และออกจากการทำงานของ Loop For
for(i=0;i<so.data.register_xml.firstChild.childNodes.length;i++){
if(user_login.text==so.data.register_xml.firstChild.childNodes[i].childNodes[0].firstChild.nodeValue){
checkUser=true;
break;
}
}

if(checkUser==false){
// สร้างตัวแปรเก็บค่าของ NodeElement สุดท้ายเพื่อเอาไว้อ้างอิงเราเพิ่ม Node เข้า XML Method insertBefore()
var insertPoint:XMLNode = so.data.register_xml.firstChild.childNodes.lastChild;

// สร้าง Node ของ XML ขึ้นมา 3 Node โดยใช้ Method createElement()
new_childNode = so.data.register_xml.createElement("register");
new_username = so.data.register_xml.createElement("username");
new_pwd = so.data.register_xml.createElement("password");

// เพิ่ม  Node ที่สร้างขึ้นมาใหม่  เข้า  rootNode ซึ่งก็คือต่อจาก Node <system>...</system>
rootNode.appendChild(new_childNode);
new_childNode.appendChild(new_username);
new_childNode.appendChild(new_pwd);

// สร้าง text Node ของ Node ต่างๆที่สร้างขึ้นโดยใช้ Method createTextNode()
new_username_value = so.data.register_xml.createTextNode(user_login.text);
new_pwd_value = so.data.register_xml.createTextNode(pwd_login.text);

// เพิ่ม Text Node เข้า  XML Node
new_username.appendChild(new_username_value);
new_pwd.appendChild(new_pwd_value);

// เป็นก็เพิ่ม Node ที่เราสร้างขึ้นใหม่ ชื่อ new_childNode และจะอ้างอิงตำแหน่งการเพิ่มเข้าไปด้วยก็คือตัวแปร insertPoint
so.data.register_xml.firstChild.insertBefore(new_childNode, insertPoint);
// ตรงนี้สำคัญมาก   เพราะบางคนอาจจะงง  ว่าทำไมถึงเพิ่ม Node หลายขั้นตอนจัง ทั้งใช้ appendChild() insertBefore()
/*  ซึ่งก็น่าจะพอแล้ว  ทั้งๆที่เราก็ใช้  Path --> so.data.register_xml.firstChild.insertBefore()
  เราลอง Command บรรทัดนี้ดู     so.data.register_xml=new XML(so.data.register_xml);
ซึ่งก็เป็นการเพิ่มชื่อได้เหมือนกัน  แต่เวลาเราปิด Movie และกลับมาเิ่ล่น Movie ใหม่กลับไม่มีชื่อที่เราเพิ่ม 
ซึ่งเหตุการณ์นี้เป็น เพราะมันไม่ถูกเขียนเข้า SharedObject เหมือนการใช้ Array

ผมก็เลยแก้ปัญหาโดยการสร้าง XML ขึ้นใหม่เลยแต่เอาค่าเดิม  ซึ่งดูเหมือนซ้ำซ้อน  ผมก็ไม่รู้จะใช้วิธีไหนเหมือนกันใครเก่งเรื่อง XML ก็ช่วยเขียน
Code หน่อยแล้วกันครับ  เพราะผมทำเรื่องนี้  เปิด Help ทำด้วยซ้ำในส่วนของ XML  อิอิ......
*/
so.data.register_xml=new XML(so.data.register_xml);

// สั่งให้ Save ข้อมูลต่างๆ เข้า SharedObject โดยใช้ Method flush()
so.data.flush();
// เรียก Function showUser() เพื่อ  Update ค่าที่แสดงบน Component DataGrid ใหม่
showUser();

// ถ้า checkUser เท่ากับ true แสดงว่า ชื่อที่กรอก มีคนใช้แล้ว
}else if(checkUser==true){
user_login.text="มีผู้ใช้งานชื่อนี้แล้ว กรุณาใช้ชื่อใหม่";
}

}
// สร้าง Function เพื่อลบสมาชิกออกจากระบบ
function delUser(index){
cityNode = so.data.register_xml.firstChild.childNodes[index];
cityNode.removeNode();
so.data.register_xml=new XML(so.data.register_xml);
so.data.flush();
showUser();
}
//----------------------------------------------------------------------------------------


จบงับ  :26:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: จักรี เมื่อ 26 ก.ค. 2007, 15:58 น.
โอ้ว ขอบคุณครับ   ผมก็เคยตกอยุ๋ในวังวนของแชร์ออปเจ๊กอยุ๋พักนึงเหมือนกัน   :41:



อ้าวเฮ้ย  นี่อ๊อดใช่มั้ยเนี่ย..............

ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: aodTo เมื่อ 27 ก.ค. 2007, 00:35 น.
อิอิ รู้ได้ไง :43:
คงเป็น Kree ใช่ไหม เจอเพื่อนเก่า อิอิ  :26:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: iannnnn เมื่อ 27 ก.ค. 2007, 02:04 น.
โอ้ว อ๊อด โอ้ว กรี :25:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: แอ๊ะ เมื่อ 27 ก.ค. 2007, 11:09 น.
โอ้วววว ความรู้เพียบ ขอบคุณครับ  :45:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: X Saint เมื่อ 30 ก.ค. 2007, 04:02 น.
คล้ายๆ ตัวเดิมที่เคยทำเมื่อนานมาแล้วครับ (นานมาก ไฟล์หายไปแล้ว -__-')
ปรับปรุงนิดหน่อย ตัวนี้จะใส่ url ของ RSS ที่ต้องการแสดงใน Flash แล้วกดปุ่มให้มันดึงมาแสดงผลได้เลย

ยังคงแสดงผล 3 ข้อมูลแรกเหมือนเดิม และตัวนี้ไม่มี scroll bar เหมือนเดิมครับ ถ้าไป feed เว็บไหนที่ข้อมูลยาวๆ เช่น iannnnn.com มันก็จะยืดยาว จนมองไม่เห็นข้างล่าง (ถ้าคลิกเมาส์ลากๆ ลงจะเห็น)

http://www.x-sense.com/project/rssReader.swf
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: X Saint เมื่อ 30 ก.ค. 2007, 04:05 น.
ตัวนี้ทำให้อ่านเฉพาะ RSS นะครับ ไม่อ่าน atom
ก่อนที่จะไปสู่รายละเอียดบน Flash และ ActionScript
มาวิเคราะห์ข้อมูลที่จะดึงมาก่อน ในที่นี้คือ xml ที่อยู่ในรูปแบบ RSS

(http://img2.f0nt.com/30/0c6edbccc1b465fa66a48a010345a61b.gif)
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: X Saint เมื่อ 30 ก.ค. 2007, 04:14 น.
โครงสร้างของ RSS ในทุกๆ เว็บจะมีโครงสร้างในลักษณะภาพด้านบนครับ (สมมุติว่าเราจะทำให้อ่าน RSS 2.0 อย่างเดียวนะครับ)

สิ่งที่เราต้องการมาแสดงผลในที่นี้คือ title, pubDate, link, description ของข้อมูล 3 อันล่าสุด
ซึ่งข้อมูลทั้ง 4 นี้จะอยู่ใน Element item

อันดับแรกทำความเข้าใจกับโครงสร้าง RSS ก่อนครับ (ดูรายละเอียดเพิ่มเติมได้ที่ http://cyber.law.harvard.edu/rss/rss.html)

RSS จะมี root node คือ <rss>

ภายใน node นี้จะมี <channel>

ภายใน channel ก็จะมี tag อีกมากมาย เช่น title ของ RSS ตัวนี้ category, description, etc. รวมทั้ง <item> ที่เราต้องการดึงข้อมูลมาใช้ด้วย

ดังนั้นจะเห็นว่าข้อมูลที่เราต้องการดึงมาใช้นั้นจะอยู่ในลำดับขั้นนี้ (hierachy) การวิเคราะห์โครงสร้างของ xml ที่ต้องการใช้ จะมีผลต่อการเขียน ActionScript ให้ดึงข้อมูลออกมา ซึ่งตอนนี้เราก็รู้แล้วว่ามันอยู่ในลำดับไหน มีความสัมพันธ์เช่นไรกับ root node

ในส่วนต่อไป ก็จะเริ่มทำความเข้าใจกับการอ่าน XML ด้วย ActionScript ครับ
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: X Saint เมื่อ 30 ก.ค. 2007, 09:55 น.
บน Stage มี Dynamic Text 1 ตัว ชื่อ dispTxt สำหรับแสดงผลลัพธ์นะครับ
แล้วด้านล่างเป็น Input Text ชื่อ urlTxt สำหรับใส่ url
ส่วนปุ่ม GO นั่นชื่อว่า btnGO ครับ

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

var xmlDoc:XML = new XML();
var url:String = "http://rss.gamespot.com/misc/rss/gamespot_updates_news.xml";
xmlDoc.load("proxyCrossDomain.php?url="+url);
xmlDoc.ignoreWhite = true;


ส่วนแรกผมตั้งตัวแปร url เพื่อเป็น default ให้ไปอ่านหัวข้อข่าวล่าสุดจากเว็บ gamespot.com ครับ
แล้วให้ xmlDoc โหลด RSS นั้นผ่าน proxy script (เพราะเป็นการโหลดค่าข้ามโดเมน - ถ้าสงสัยส่วนนี้บอกได้ครับ) คือตัว proxyCrossDomain.php ครับ
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: X Saint เมื่อ 30 ก.ค. 2007, 09:57 น.
ส่วนต่อมาเป็นฟังก์ชั่นที่มารับจาก event onLoad ของ xmlDoc ครับ

xmlDoc.onLoad = function(success:Boolean):Void  {
if (success) {
urlTxt.htmlText = url;
dispTxt.text = "";
dispFeed(this.firstChild);
} else {
dispTxt.text = "Can not load xml data";
}
};


ส่วนต่อมาเป็นฟังก์ชั่นค้นหาโหนดที่ต้องการครับ

function getNodeText(inNode:XMLNode, tagName:String):String {
if (inNode.nodeName == tagName) {
return inNode.firstChild.toString();
} else if (inNode.nextSibling != null) {
return getNodeText(inNode.nextSibling, tagName);
}
}


ถัดมาเป็นฟังก์ชั่นสำหรับแสดงผล ซึ่งถูกเรียกใช้จากอีเวนต์ onLoad ของ xmlDoc ครับ

function dispFeed(xmlFeed:XMLNode):Void {
var xmlChannel:XMLNode = xmlFeed.firstChild;
var aItem:Array = xmlChannel.childNodes;
var itemCnt:Number = 0;
var itemMax:Number = 3;

for (var i:Number = 0; i<aItem.length; i++) {
if (aItem[i].nodeName == "item") {
var vPubDate:String = getNodeText(aItem[i].firstChild, "pubDate");
var vTitle:String = getNodeText(aItem[i].firstChild, "title");
var vLink:String = getNodeText(aItem[i].firstChild, "link");
var vDesc:String = getNodeText(aItem[i].firstChild, "description");
dispTxt.htmlText += "<b><a href=\""+vLink+"\" target=\"_blank\">"+vTitle+"</a></b>\n";
dispTxt.htmlText += vPubDate+"\n"+vDesc+"\n\n";
itemCnt++;
if (itemCnt == itemMax) break;
}
}
}


ส่วนสุดท้ายจะเป็นปุ่ม GO นะครับ
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: X Saint เมื่อ 30 ก.ค. 2007, 09:58 น.
ส่วนสุดท้ายสำหรับให้ปุ่ม GO ทำการ update ข้อมูลจาก url ที่ระบุครับ

btnGO.onRelease = function():Void {
url=urlTxt.text;
xmlDoc.load("proxyCrossDomain.php?url="+url);
}


เสร็จแล้วครับ feed reader แบบง่ายๆ บน Flash พอจะสรุปแบ่งเป็นหัวข้อย่อยได้ดังนี้ครับ
1. การอ่าน XML ด้วย XML และ XMLNode
2. การอ่านข้อมูลข้ามโดเมน
3. การดึงค่าจาก RSS หรือ xml
4. หลักการของฟังก์ชั่น getNodeText
5. หลักการของฟังก์ชั่น dispFeed

สงสัยหัวข้อไหนก็ระบุมานะครับ
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: WuTtY เมื่อ 01 ส.ค. 2007, 22:40 น.
อ้างคำพูดจาก: X Saint เมื่อ 30 ก.ค. 2007, 09:55 น.
ส่วนแรกผมตั้งตัวแปร url เพื่อเป็น default ให้ไปอ่านหัวข้อข่าวล่าสุดจากเว็บ gamespot.com ครับ
แล้วให้ xmlDoc โหลด RSS นั้นผ่าน proxy script (เพราะเป็นการโหลดค่าข้ามโดเมน - ถ้าสงสัยส่วนนี้บอกได้ครับ) คือตัว proxyCrossDomain.php ครับ

ถามนิดนึงเรือ่ง cross domain ครับ
1. flash มันจะไม่ยอมให้ไปอ่าน rss อื่นตรง ๆ เหรอครับ ทำไมต้องใช้ proxy script ด้วย
2. proxy script นี่ทำอะไรบ้างครับ ไป get rss xml แล้ว return ออกมาตรง ๆ ใช่หรือเปล่า ?
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: X Saint เมื่อ 02 ส.ค. 2007, 01:06 น.
อ้างคำพูดจาก: WuTtY เมื่อ 01 ส.ค. 2007, 22:40 น.
ถามนิดนึงเรือ่ง cross domain ครับ
1. flash มันจะไม่ยอมให้ไปอ่าน rss อื่นตรง ๆ เหรอครับ ทำไมต้องใช้ proxy script ด้วย
2. proxy script นี่ทำอะไรบ้างครับ ไป get rss xml แล้ว return ออกมาตรง ๆ ใช่หรือเปล่า ?

1. ครับ ถ้าเว็บไซต์นั้นไม่ได้เปิด บางเว็บไซต์อย่าง Flickr (http://api.flickr.com/crossdomain.xml) จะตั้ง crossdomain.xml เปิดให้กับทุกๆ โดเมนมาอ่านครับ อย่าง youtube (http://www.youtube.com/crossdomain.xml) จะเปิดให้ google กับ yahoo เป็นต้น แต่ส่วนใหญ่ที่ผมเห็นจะไม่ อันนี้ตั้งแต่ Flash Player 7 เป็นต้นมาตั้งระบบ Security เอาไว้ นี่พูดถึงเฉพาะที่ทำงานบนเว็บนะครับ ถ้า run จากตัว Flash (Editor) บนเครื่องเรา มันก็อ่านได้หมดครับ

2. ครับ proxy script ไปดึง rss มาตรงๆ แล้วก็สั่ง print ออกมาตรงๆ เลย Flash ก็จะรับผลลัพธ์นั้นเข้ามาทั้งหมดครับ

ดูรายละเอียดเพิ่มเติมได้ที่ :
http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_14213&sliceId=1
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: โต เมื่อ 06 ส.ค. 2007, 16:55 น.
อ่านแล้วก็พอเข้าใจ xml
แต่งานที่ทำมันต้องเอาphp ดึงxml มาประมวลผล
แล้วส่งให้อีกโปรแกรมนึงเอาไปใช้

ยังมืดแปดด้านอยู่เลยครับ :05:
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: WuTtY เมื่อ 06 ส.ค. 2007, 21:50 น.
อ้างคำพูดจาก: โต สิรพจน์ เมื่อ 06 ส.ค. 2007, 16:55 น.
อ่านแล้วก็พอเข้าใจ xml
แต่งานที่ทำมันต้องเอาphp ดึงxml มาประมวลผล
แล้วส่งให้อีกโปรแกรมนึงเอาไปใช้

ยังมืดแปดด้านอยู่เลยครับ :05:

ส่งไปยังงัยครับ เป็น web services หรือ ว่า http request ธรรมดา
php ก็มี class สำหรับ parse เป็น dom เหมือนกันนะครับ

ใช้อะไรบ้างลองบอกมาก็ได้ครับเพื่อเคยทำแนว ๆ นี้
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: X Saint เมื่อ 07 ส.ค. 2007, 03:45 น.
อ้างคำพูดจาก: โต สิรพจน์ เมื่อ 06 ส.ค. 2007, 16:55 น.
อ่านแล้วก็พอเข้าใจ xml
แต่งานที่ทำมันต้องเอาphp ดึงxml มาประมวลผล
แล้วส่งให้อีกโปรแกรมนึงเอาไปใช้

ยังมืดแปดด้านอยู่เลยครับ :05:

จริงๆ ตัวอย่างด้านบนนั้น php เป็นตัวดึง xml เข้ามา แล้วส่งให้ Flash ไปใช้งานต่อครับ
ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: โต เมื่อ 07 ส.ค. 2007, 14:06 น.
ok ครับ งานครั้งนี้สรุปมาแล้วเป็นแค่ลูกมือของในทีม :42:
เดี่ยวจะลองศึกษาดูเองก่อน สงสัยตรงไหนจะมาถามละกันครับ
เร็วๆนี้อาจจะต้องใช้มากกว่าตอนนี้ก็เป็นได้


ชื่อเรื่อง: Re: ดึง XML มาแสดงผลยังไงครับ
โพสต์โดย: คนตาบอดข้างเดียว เมื่อ 07 ส.ค. 2007, 20:49 น.
ยามเข้านะครับ