Simple ASP จะโหลดฐานข้อมูลการเข้าถึง สร้าง XML จากนั้นโหลดข้อมูล XML ลงในส่วนประกอบ LIST เพื่อเป็นตัวอย่างการเรียนรู้ ขั้นแรก ASP จะอ่านฐานข้อมูล ACCESS
คัดลอกรหัสรหัสดังต่อไปนี้:
<% @ภาษา=VBScript @codepage=65001%>
-
'เปิดการประกาศตัวแปรที่ชัดเจน
ตัวเลือกที่ชัดเจน
'ตั้งค่าประเภทเอาต์พุต
Response.contentType=ข้อความ/xml
'กำหนดตัวแปรสามตัว ได้แก่ conn (วัตถุการเชื่อมต่อ), connstr (ConnectionString), sql (คำสั่ง SQL)
หรี่ conn, connstr, rs, sql, i
'กำหนดค่าของ ConnectionString
ผม=1
connstr=provider=Microsoft.Jet.OLEDB.4.0;แหล่งข้อมูล=&Server.MapPath(test.mdb)&;
'สร้างวัตถุการเชื่อมต่อเซิร์ฟเวอร์
ตั้งค่า conn=Server.CreateObject (ADODB.Connection)
'สร้างวัตถุชุดข้อมูล
ตั้ง rs = Server.CreateObject (ADODB.RecordSet)
'เปิดการเชื่อมต่อข้อมูล
conn.open constr
'ความหมายของประโยคนี้คือการดึงค่าฟิลด์ 100 song1name และ dong1url 100 ตัวแรกตามลำดับจากน้อยไปมากของค่าฟิลด์ id ในตารางข้อมูลคำ ค่าที่แนบมากับวัตถุชุดข้อมูลเป็นคุณสมบัติของชุดข้อมูล
sql=เลือก 100 อันดับแรก [song1name],[dong1url] จาก [test] เรียงลำดับตาม id desc
'ทั้งประเภทเคอร์เซอร์และประเภทการล็อคถูกตั้งค่าเป็น 1 นี่เป็นพฤติกรรมแบบอ่านอย่างเดียวแบบไปข้างหน้าเท่านั้นซึ่งมีความเร็วในการอ่านที่เร็วที่สุด
rs.open sql,conn,1,1
Response.Write(<?xml version='1.0' encoding='utf-8'?><Taosha.com>)
'ทำการวนซ้ำแบบ do while และวนซ้ำแบบมีเงื่อนไขไปยังรายการสุดท้ายที่ตรงตามเงื่อนไข
ทำในขณะที่ไม่ใช่ rs.eof
'นี่คือส่วนที่ได้รับการแก้ไขเพื่อให้ไฟล์เอาต์พุตสามารถรับรู้โดยวัตถุ LoadVars ใน Flash
Response.Write(<song information><song name>&rs(song1name)&</song name><address>&rs(dong1url))&</address></song information>
'บันทึกย้ายลง
rs.movenext
ฉัน=ฉัน+1
'วิธีการวนซ้ำที่สะท้อนทำในขณะที่เป็นตัวของวงหลัก
วนซ้ำ
การตอบกลับเขียน(</Taosha.com>)
'ปิดวัตถุชุดข้อมูล
RS.ปิด
'ปิดการเชื่อมต่อฐานข้อมูล
เชื่อมต่อปิด
'ปล่อยทรัพยากรชุดข้อมูล
ตั้งค่า rs=nothing
'ปล่อยทรัพยากรการเชื่อมต่อฐานข้อมูล
ตั้งค่า conn=ไม่มีอะไร
-
โค้ดส่วนนี้คือการอ่านฐานข้อมูล
มาดูกันว่า XML ถูกสร้างขึ้นมาอย่างไร ที่จริงแล้วคือระหว่างเอาท์พุต รวมถึงรูปแบบ XML ที่สอดคล้องกัน ตัวอย่างเช่น <ข้อมูลเพลง> และแท็กต่างๆ เป็นต้น โปรดทราบว่าจะต้องปิดแต่ละป้ายกำกับ
รหัสทั้งหมดของไฟล์ xml.asp นี้จะเป็นดังนี้:
ต่อไปเรามาดูกันว่ามันโหลดอย่างไรใน FLASH?
ที่นี่มันควรจะง่ายมาก
คัดลอกรหัสรหัสดังต่อไปนี้:
//กำหนดส่วนประกอบ
var my_TextArea:mx.controls.TextArea;
var my_List:mx.controls.List;
var my_XML:XML = XML ใหม่();
my_XML.load(http://www.taoshaw.com/taoshaw/study/accessAndList/xml.asp);
my_XML.onLoad = ฟังก์ชั่น (ตกลง: บูลีน) {
ถ้า (ตกลง) {
สำหรับ (i=0; i[td] my_List.addItem({label:this.firstChild.childNodes.childNodes[0].childNodes[0].nodeValue, data:this.firstChild.childNodes.childNodes[1].childNodes[ 0].nodeValue});
-
-
-
var my_Object:Object = วัตถุใหม่ ();
my_Object.change = ฟังก์ชั่น (eventObj:Object):Void {
my_TextArea.text += eventObj.target.selectedItem.label+/n;
-
my_List.addEventListener (เปลี่ยน, my_Object);
ด้วยวิธีนี้ ไฟล์ XML ที่สร้างขึ้นจะถูกนำเข้าไปยัง LIST สามารถเรียกข้อมูลผ่านฟังก์ชันการตรวจสอบได้
หากคุณเรียนรู้สิ่งนี้เป็นอย่างดี การสร้างโปรเจ็กต์พื้นหลังบางอย่าง เช่น อัลบั้มรูปภาพ การจัดการบทความแบบไดนามิก โปรแกรมเล่น ฯลฯ ก็ไม่ใช่เรื่องยาก
เมื่อสร้าง FLASH ที่ต้องโหลดไฟล์ภายนอก จะต้องให้ความสนใจเป็นพิเศษกับปัญหาการเข้ารหัส
ก่อนอื่น ระวังอย่าให้ปรากฏสองครั้งใน FLASH เดียวกัน: System.useCodepage=true;
ความหมายดั้งเดิมของประโยคนี้คือการแปลงการเข้ารหัสของไฟล์รูปแบบที่ไม่ใช่ Utf-8 ภายนอกที่โหลดไปเป็นรูปแบบ uft-8 หากใช้สองครั้งจะเกิดข้อผิดพลาดอย่างแน่นอน
วิธีการร่วมมือทั่วไปคือการเลือกรูปแบบการเข้ารหัส uft-8 หรือ Gb2312 เมื่อบันทึกไฟล์ภายนอก สำหรับรายละเอียดความแตกต่างระหว่างการเข้ารหัสทั้งสองนี้ ฉันยังไม่แน่ใจ ฉันหวังว่าถ้าคุณมีเพื่อนที่เข้าใจ คุณสามารถให้คำแนะนำแก่ฉันได้บ้าง
i ใน ASP นั้นไม่มีความหมาย สามารถถอดออกได้ ในบรรทัดที่ 26 ของส่วนที่โพสต์ วงเล็บอยู่ในตำแหน่งที่ไม่ถูกต้อง
นอกจากนี้ โค้ดใน if(ok){} ใน AS ที่โพสต์โดยผู้โพสต์หายไปบางส่วน การวนซ้ำ for ไม่สมบูรณ์
คัดลอกรหัสรหัสดังต่อไปนี้:
คุณสมบัติ useCodePage
useCodePage:บูลีน [อ่าน-เขียน]
เวอร์ชันภาษา: ActionScript 3.0
เวอร์ชันของผู้เล่น: Flash Player 9
ค่าบูลีนที่บอก Flash Player ว่าโค้ดเพจใดที่จะใช้ในการตีความไฟล์ข้อความภายนอก เมื่อคุณสมบัตินี้ถูกตั้งค่าเป็นเท็จ Flash Player จะใช้ Unicode เพื่อตีความไฟล์ข้อความภายนอก (ไฟล์เหล่านี้จะต้องเข้ารหัสในรูปแบบ Unicode เมื่อคุณบันทึก) เมื่อคุณสมบัตินี้ถูกตั้งค่าเป็นจริง Flash Player จะตีความไฟล์ข้อความภายนอกโดยใช้เพจรหัสดั้งเดิมของระบบปฏิบัติการที่โปรแกรมเล่นกำลังทำงานอยู่ ค่าเริ่มต้นของ useCodePage เป็นเท็จ
ข้อความที่โหลดเป็นไฟล์ภายนอก (โดยใช้ flash.display.Loader.load(), flash.net.URLLoader, flash.net.URLStream หรือคลาส XML) จะต้องได้รับการบันทึกโดยใช้การเข้ารหัส Unicode เพื่อให้ Flash Player จดจำได้ เป็นยูนิโค้ด หากต้องการเข้ารหัสไฟล์ภายนอกโดยใช้ Unicode ให้บันทึกไฟล์ในแอปพลิเคชันที่รับรู้ Unicode (เช่น Notepad บน Windows 2000)
หากไฟล์ข้อความภายนอกที่กำลังโหลดไม่อยู่ในรูปแบบการเข้ารหัส Unicode ควรตั้งค่า useCodePage เป็นจริง ในเฟรมแรกของไฟล์ SWF ที่จะโหลดข้อมูล ให้เพิ่มโค้ดต่อไปนี้ที่ด้านหน้าเพื่อให้เป็นบรรทัดแรกของโค้ด:
System.useCodePage = true;ด้วยบรรทัดโค้ดนี้ Flash Player จะใช้โค้ดเพจเดิมของระบบปฏิบัติการที่ Flash Player กำลังทำงานอยู่เพื่อแปลข้อความภายนอก สำหรับระบบปฏิบัติการ Windows ภาษาอังกฤษ โค้ดเพจนี้มักจะเป็น CP1252 สำหรับระบบปฏิบัติการของญี่ปุ่น โค้ดเพจนี้มักจะเป็น Shift-JIS Flash Player 6 และใหม่กว่าจัดการข้อความเหมือนกับ Flash Player 5 หาก useCodePage ถูกตั้งค่าเป็นจริง (Flash Player 5 ถือว่าข้อความทั้งหมดเป็นข้อความที่เข้ารหัสในหน้ารหัสเดิมของระบบปฏิบัติการที่โปรแกรมเล่นกำลังทำงานอยู่)
หากคุณตั้งค่า useCodePage เป็นจริง โปรดทราบว่าอักขระที่ใช้ในไฟล์ข้อความภายนอกของคุณจะต้องรวมอยู่ในโค้ดเพจเดิมของระบบปฏิบัติการที่โปรแกรมเล่นกำลังทำงานอยู่จึงจะสามารถแสดงข้อความได้ ตัวอย่างเช่น ถ้าคุณโหลดไฟล์ข้อความภายนอกที่มีอักขระภาษาจีน อักขระจะไม่สามารถแสดงบนระบบที่ใช้โค้ดเพจ CP1252 ได้เนื่องจากโค้ดเพจนั้นไม่มีอักขระภาษาจีน
เพื่อให้แน่ใจว่าผู้ใช้ในทุกแพลตฟอร์มสามารถดูไฟล์ข้อความภายนอกที่ใช้ในไฟล์ SWF ได้ ไฟล์ข้อความภายนอกทั้งหมดควรเข้ารหัสเป็น Unicode และปล่อยให้ useCodePage ตั้งค่าเป็น false ด้วยวิธีนี้ Flash Player 6 และใหม่กว่าจะตีความข้อความเป็น Unicode