Creating a Simple AIR Application with HTML and JavaScript
From Blognone
ลองสร้างแอพพลิเคชัน AIR ด้วย HTML และ JavaScript
ตอนนี้คุณได้ติดตั้ง AIR และ AIR SDK รุ่นเบต้าเรียบร้อยแล้ว เราก็มาเริ่มสร้างแอพพลิเคชัน AIR ตัวแรกกันเสียที
เราจะลองสร้าง "hello world" ซึ่งเป็นแอพพลิเคชันที่เรียบง่ายมาก หลังจากคุณได้ลองสร้างและทดสอบแอพพลิเคชันตัวนี้ แสดงว่าคุณมีสภาวะการพัฒนาที่พร้อมสำหรับสร้างแอพพลิเคชัน AIR ที่ซับซ้อนมากขึ้นแล้ว
Contents |
สร้างไฟล์สำหรับแอพพลิเคชัน
แอพพลิเคชัน AIR ทุกตัวจำเป็นต้องมีไฟล์อย่างน้อย 2 ไฟล์ ไฟล์แรกคือไฟล์ root ซึ่งเป็นไฟล์ HTML หรือ SWF หลักสำหรับแอพพลิเคชัน และไฟล์นี้จะเป็นไฟล์ที่ถูกเรียกเมื่อแอพพลิเคชันเริ่มทำงาน
ไฟล์ที่สองคือไฟล์อธิบายข้อมูลแอพพลิเคชัน ซึ่งเป็น XML ที่บอกข้อมูล (metadata) เกี่ยวกับแอพพลิเคชัน AIR ของเรา
ลองสร้างไฟล์ทั้งสองนี้สำหรับแอพพลิเคชันของเรา
- สร้างโฟลเดอร์ใหม่ชื่อ AIRHelloWorld
- ในโฟลเดอร์นี้ สร้างไฟล์ใหม่สองไฟล์ชื่อ AIRHelloWorld.html และ AIRHelloWorld.xml
- เปิดไฟล์ด้วยโปรแกรมแก้ไขข้อความที่ถนัด
ทำความเข้าใจไฟล์อธิบายข้อมูลแอพพลิเคชัน
ไฟล์อธิบายข้อมูลแอพพลิเคชันเป็นไฟล์ XML ที่จำเป็นต้องมีในแอพพลิเคชัน AIR แต่ละตัว โดยมันทำหน้าที่ให้ข้อมูลทั่วไปเกี่ยวกับโปรแกรม (metadata) เช่น ชื่อและคำอธิบาย ไปจนถึงวิธีการเรียกใช้แอพพลิเคชัน ในไฟล์นี้จะบอกตำแหน่งของไฟล์ root และรูปแบบหน้าต่างที่แอพพลิเคชันใช้งาน
ขั้นแรกให้ลองดูตัวอย่างไฟล์อธิบายข้อมูลแอพพลิเคชันของเรา (AIRHelloWorld.xml) แล้วเราจะเข้าสู่รายละเอียดของไฟล์ทีละส่วน
Tip: คุณสามารถดูตัวอย่างไฟล์อธิบายข้อมูลแอพพลิเคชันได้จากโฟลเดอร์ templates ใน AIR SDK
เปิดไฟล์ AIRHelloWorld.xml แล้วพิมพ์ข้อความดังต่อไปนี้
<?xml version="1.0" encoding="UTF-8"?> <application xmlns="http://ns.adobe.com/air/application/1.0.M4" appId="com.oreilly.AIRHelloWorld" version="1.0"> <name>AIRHelloWorld</name> <title>AIRHelloWorld Installer</title> <description>Simple Hello World Example using HTML</description> <copyright></copyright> <rootContent systemChrome="standard" transparent="false" visible="true"> ApolloHelloWorld.html</rootContent> </application>
ตัวข้อความอธิบายตัวเองได้ค่อนข้างดีอยู่แล้ว แต่เรามาดูกันอย่างละเอียดว่าแต่ละบรรทัดหมายถึงอะไร
<application xmlns="http://ns.adobe.com/air/application/1.0.M4" appId="com.oreilly.AIRHelloWorld" version="1.0">
ในบรรทัดนี้มีสองจุดที่น่าสนใจ อย่างแรกคือ namespace
http://ns.adobe.com/air/application/1.0.M4
นี่เป็นการบอกรุ่นของ AIR ที่แอพพลิเคชันตัวนั้นคาดหวังว่าจะใช้ โดยในกรณีนี้ระบุรุ่น 1.0.M4 ซึ่งหมายถึงรุ่น Beta
ส่วนคุณสมบัติ appId เป็นการบ่งบอกถึงแอพพลิเคชัน AIR ตัวนั้นๆ โดย AIR จะใช้ ID นี้แยกแยะระหว่างแอพพลิเคชันแต่ละตัว
คุณจะเห็นว่าฟอร์แมตของ appID ใช้วิธีแบบ reverse domain name ซึ่งคุณอาจเคยเห็นมาบ้างในภาษาโปรแกรมบางตัวอย่างเช่น Java, ActionScript และเฟรมเวิร์คบางตัวของ JavaScript คุณสามารถสร้าง ID ของตัวเองได้จากโดเมนเนม และตามด้วยชื่อแอพพลิเคชัน
ส่วนถัดไปคือข้อมูลทั่วไปของแอพพลิเคชันนั้นๆ
<name>AIRHelloWorld</name> <title>AIRHelloWorld Installer</title> <description>Simple Hello World Example using HTML</description> <copyright></copyright>
| Element | คำอธิบาย |
|---|---|
| name | ชื่อของแอพพลิเคชัน โดยชื่อนี้จะเป็นชื่อที่ระบบปฏิบัติการและผู้ใช้มองเห็น |
| title | ชื่อที่แสดงในตัวติดตั้งแอพพลิเคชัน |
| description | คำอธิบายซึ่งจะแสดงต่อผู้ใช้ระหว่างการติดตั้ง |
| copyright | (ไม่จำเป็นต้องใส่) ให้ข้อมูลเกี่ยวกับลิขสิทธิ์ของแอพพลิเคชัน |
ส่วนถัดไปคือแท็ก rootContent ซึ่งจะบอกรันไทม์ AIR ว่าไฟล์ไหนคือไฟล์ root ของแอพพลิเคชัน
<rootContent systemChrome="standard" transparent="false" visible="true">
ApolloHelloWorld.html</rootContent>
ในกรณีนี้เราใช้ไฟล์ HTML เป็นไฟล์ root ของแอพพลิเคชัน
Tip: ไฟล์อธิบายข้อมูลแอพพลิเคชัน และไฟล์ root ของแอพพลิเคชันจำเป็นต้องอยู่ในโฟลเดอร์เดียวกัน
ในแท็ก rootContent มีค่าคุณสมบัติที่ระบุรูปแบบหน้าต่างและโครงของแอพพลิเคชันเมื่อเริ่มต้นทำงานดังนี้
| Element | คำอธิบาย |
|---|---|
| systemChrome | บอกชนิดของ systemChrome ที่แอพพลิเคชันจะเรียกใช้ ("standard" หรือ "none") |
| transparent | ระบุว่าพื้นหลังของแอพพลิเคชันจะโปร่งใสหรือไม่ ถ้าตั้ง systermChrome เป็น standard ค่านี้จะเป็น true |
| visible | ระบุว่าให้ผู้ใช้มองเห็นแอพพลิเคชันทันทีเมื่อเรียกใช้หรือไม่ มักใช้ในกรณีที่แอพพลิเคชันต้องทำงานบางอย่างก่อนแสดงหน้าตาให้ผู้ใช้เห็น |
ในตัวอย่างของเรานี้ เราจะใช้โครงและหน้าต่างแบบเดียวกับของระบบปฏิบัติการ
ทั้งหมดนี้เป็นสิ่งที่จำเป็นต้องใส่ในไฟล์อธิบายข้อมูลแอพพลิเคชันของเรา ตอนนี้เราก็พร้อมจะสร้างไฟล์ HTML หลักสำหรับแอพพลิเคชันแล้ว
สร้างไฟล์ root ของแอพพลิเคชัน
ไฟล์ root เป็นไฟล์หลักของแอพพลิเคชันซึ่งจะถูกอ่านเมื่อแอพพลิเคชันเริ่มทำงาน ไฟล์นี้อาจเป็น Flash (SWF) หรือ HTML ก็ได้
ในบทนี้เราจะสร้างไฟล์ HTML อย่างง่ายเพื่อทดสอบว่าเราได้ติดตั้งสภาพแวดล้อมในการทำงานอย่างถูกต้อง โดยเราจะเข้าสู่การใช้ API ของ AIR ที่ซับซ้อนขึ้นในบทที่ 3 และ 4
<html>
<head>
<title>AIRHelloWorld</title>
<script>
function init( )
{
runtime.trace("init function called");
}
</script>
</head>
<body onload="init( )">
<div align="center">Hello World</div>
</body>
</html>
คุณคงเห็นว่านี่เป็นไฟล์ HTML ง่ายๆ ที่แสดงข้อความ "Hello World" และเรียกใช้ฟังก์ชันของ JavaScript เมื่อไฟล์ถูกเรียกและเริ่มต้นทำงาน
บางบรรทัดที่น่าสนใจ
<body onload="init( )">
เราใช้อีเวนต์มาตรฐาน onload ในแท็ก body เพื่อเป็นจุดเริ่มต้นของ JavaScript ในแอพพลิเคชันของเรา
function init( )
{
...
}
จากนั้นเราใช้ฟังก์ชันมาตรฐานของ JavaScript เพื่อติดต่อกับอีเวนต์ onload
เรียกใช้ API ของ AIR
ลองสังเกตที่ฟังก์ชัน init คุณจะเห็นโค้ดที่คุณอาจไม่คุ้นเคย
runtime.trace("init function called");
นี่เป็นโค้ดของ AIR เพียงบรรทัดเดียวในแอพพลิเคชันนี้ คุณสมบัติ runtime เป็นคุณสมบัติของออปเจคต์ window ของ AIR ซึ่งจะเป็นจุดเริ่มต้นของเอนจินและ API ต่างๆ ส่วนฟังก์ชัน trace เป็น API ของ AIR ในระดับสูง ซึ่งจะรับค่าข้อความแล้วแสดงออกมาทางคอมมานด์ไลน์ (ในกรณีที่แอพพลิเคชันนั้นถูกเรียกใช้ผ่านคอมมานด์ไลน์)
API ของ AIR ทุกตัว (ซึ่งรวมถึง API ของ Flash Player ด้วย) สามารถเรียกใช้จาก JavaScript โดยผ่านคุณสมบัติ runtime ซึ่งเราจะอธิบายเรื่องนี้อย่างละเอียดในบทหลังๆ
Tip: คุณสามารถตรวจสอบว่าแอพพลิเคชันของคุณรันอยู่ใน AIR หรือไม่ โดยใช้วิธีตรวจว่ามีคุณสมบัติ runtime หรือเปล่า จากโค้ดต่อไปนี้
if (window.runtime)
{
//running within AIR
}
ตอนนี้เราได้สร้างทั้งไฟล์อธิบายข้อมูลแอพพลิเคชัน และไฟล์ root แล้ว ขั้นต่อไปเป็นการรันทดสอบแอพพลิเคชันของเราด้วยรันไทม์