Posts Tagged ‘Flash’

วิธีการเรียกใช้ External EXE file จาก Flash (Windows App เท่านั้น)

Wednesday, May 26th, 2010

วันนี้มีโจทย์มาว่าใน Flash (Windows App) ต้องทำ Link ให้สามารถเปิดสิ่งต่อไปนี้ได้
1. PowerPoint file (*.ppt)
2. E-Mail Client (mailto:)
3. Windows Live Messenger (exe file)
4. Skype (exe file)
5. Google Talk (exe file)

สองตัวแรกไม่มีปัญหา
- PowerPoint file ใช้ fscommand เปิด ppt file ที่อยู่ใน fscommand folder ได้ เพราะอยู่ใน sandbox อยู่แล้ว
- mailto นี่ตรงไปตรงมาทำ URL เป็น mailto:who@where.com ก็ได้เลย

ไอ้สามตัวหลังนี่แหละที่มีปัญหา ถ้าดูตามเอกสาร fscommand ของ Adobe จะบอกไว้ชัดเลยว่า exec ของ fscommand จะเรียกได้เฉพาะไฟล์ใน fscommand folder เท่านั้น อ้าว แล้วพวก exe ข้างนอกละจะเรียกได้ไง

ตอนแรกคิดแบบง่ายเข้าว่า ทำ proxy เองเป็น .bat เช่น googletalk_proxy.bat เขียนดังนี้

1
"C:\Program Files\Google\Google Talk\googletalk.exe"

แล้วใน Flash เรียกแบบนี้

1
fscommand("exec", "googletalk_proxy.bat");

แต่ชีวิตมันไม่ง่ายเหมือนการ์ตูนแบบนั้น ดูเหมือน Flash จะมีปัญหาการเรียก .bat บนตระกูล NT เช่น 2000/XP/Vista
วิธีการมันเลยต้องซับซ้อนอีกหน่อยดังข้างล่าง

Flash <-> Proxy.exe <-> Proxy.bat <-> Any.exe

คือต้องเพิ่ม exe อีกตัวนึงเพื่อเป็น Proxy ไปเรียก .bat ซึ่ง Mr.Tim Goss ได้ทำเอาไว้ให้แล้ว
โดยหลักการมันจะเป็น naming convention คือเรียก .bat ที่ชื่อเหมือนกับ .exe ให้เอง เช่นถ้าจะเรียก GoogleTalk เราอาจตั้งชื่อไฟล์แบบนี้

googletalk_proxy.exe
googletalk_proxy.bat

โดยทั้งสองไฟล์อยู่ใน fscommand folder
จากนั้นใน googletalk_proxy.bat จะเขียนดังนี้

1
"C:\Program Files\Google\Google Talk\googletalk.exe"

แล้วใน Flash จะเรียกแบบนี้

1
fscommand("exec", "googletalk_proxy.exe");

ผมทดสอบกับอะไรบ้าง
- Flash 9 AS3
- Windows XP SP3
- Admin role user

สรุปสิ่งที่ต้องทำมีอะไรบ้าง
1. Flash ต้อง publish เป็น exe เท่านั้น
2. ไฟล์ที่เกี่ยวข้องได้แก่ proxy.bat กับ proxy.exe ต้องอยู่ใน subfolder ชื่อ fscommand โดย folder นี้อยู่ระดับเดียวกันกับไฟล์ flashapp.exe ของเรา
3. การตั้งชื่อไฟล์ proxy.exe จะเป็น naming convention ให้ตรงกับ .bat เช่น googletalk_proxy.exe จะเรียกไฟล์ googletalk_proxy.bat ให้เอง

Remarks
1. ถ้าไม่ใช้ Flash เพรียวๆ สามารถใช้ Flash Wrapper เช่น Zinc ก็สามารถแบบข้างต้นได้
2. ดูเหมือนใน AIR 2.0 จะมีความสามารถเกี่ยวกับการเรียกไฟล์ที่ดีขึ้น แต่เนื่องจากยังเป็น Beta อยู่ และผมยังไม่มีโอกาสเอา Flash CS5 มาลองด้วย เลยใช้วิธีข้างต้นไปก่อน
3. งานนี้ถ้าไม่จำเป็นต้องใช้ Flash ผมว่าใช้ VB จะ VB6 หรือ VB.NET ก็ได้ ง่ายสุด :P

Finally, Flash will be Dreamweaver for HTML5 Canvas.

Monday, April 19th, 2010

คิดเอาไว้แล้วว่ายังไงจุดแข็งของ Adobe ไม่ได้อยู่ที่มาตรฐาน (SWF) แต่อยู่ที่ Tools (Flash/Flex) มากกว่า

สุดท้ายถ้า SWF ถูกมาตรฐานกลางอย่าง HTML5 แซงไป Adobe ก็ยังมีไม้ตายคือ Export จาก Flash เป็น HTML5 ได้อยู่ดี

เหมือนกับ Dreamweaver ที่เป็น Editor สำหรับ HTML/CSS

ที่น่าแปลกใจคือผมไม่คิดว่า Adobe จะออกมาแสดงท่าทีสนับสนุน HTML5 ไวขนาดนี้ (มาพร้อมกับ Flash CS5) ผมนึกว่าจะรอดูท่าทีก่อนว่าถ้านิยมค่อยปล่อยเป็นตัวเสริมอีกที

มองอีกมุมหนึ่ง Adobe คงอ่านเกมแล้วว่า ยังไงคงหยุดกระแส HTML5 ไม่อยู่แน่ๆ เพราะ Google กับ Apple ดันเหลือเกิน ไหนจะ Mozilla อีก

การเข้าแย่งชิงพื้นที่ HTML5 Tools จึงดูน่าสนใจและน่าจะทำกำไรได้มากกว่าการแข่งด้วย Platform/Format (SWF vs HTML5)

http://www.9to5mac.com/Flash-html5-canvas-35409730

How to implement Licensing in Flex and AIR

Wednesday, November 4th, 2009

There are a lot of questions about how to implement Licensing in Flex and AIR.

I cannot explain you 100% how it works but below is list of libraries/functions for my solution.

  1. codegenas3 – AS3 library for generating system/machine id.
  2. as3crypto – AS3 library for encryption/decryption.
  3. Local Shared Object – AS3 Class for storing license information (similar to Windows Registry).
  4. Mcrypt – PHP functions for encryption/decryption.

How to show/hide SWF in Firefox without reloading

Thursday, October 8th, 2009

It’s a bug in Firefox that when you hide and then show SWF (Flex or Flash) again, it will be reloaded.

So, this is workaround.

Firstly, do not use “display: none” CSS to hide the div that contains Flash. Use “visibility: hidden ” instead.

What about layout? Yes, it may be a problem due to “visibility: hidden” just hide the div but still reserve space for it.

Therefore, we will fix it by additional CSS which is “width: 0px; height: 0px;”.

There is one side effect, the browser scroll bar will be longer than content  (I’m not sure why, but you may fix it by JavaScript. It’s out of my scope, so please let me know if any).

Conclusion, in case of we have to show/hide SWF and serious about reloading, we will use “visibility: hidden; width: 0px; height: 0px;” instead of “display: none”

In my case, I use jQuery Tabs.  So, I will fix CSS class from

.ui-tabs .ui-tabs-hide { display: none !important; }

to be

.ui-tabs .ui-tabs-hide { visibility: hidden; width: 0px; height: 0px; }

References:
http://pipwerks.com/lab/swfobject/hide-swf/2.0/index.html
http://stackoverflow.com/questions/298342/firefox-restarts-flash-movie-if-enclosing-div-properties-change

Thanks @tvchampion and @dogdoy for help.

Magic Pen Online Game

Friday, April 11th, 2008

(ไม่ได้อัพเดทบล็อกมานานมาก)

ถ้าใครยังจำ คลิป Cool Computer Program ที่อาจารย์ MIT แสดงการทำงานของ Physic ด้วยการวาดผ่าน screen ได้

วันนี้คุณจะได้ทำแบบนั้นเล่นที่หน้าจอของคุณแล้วละครับ

เกม Magic Pen Online Game พัฒนาขึ้นด้วย Flash ครับ เป้าหมายของเกมก็ง่ายๆวาด Object อะไรก็ได้ เพื่อให้พาลูกบอลเคลื่อนที่ไปยังธง โดยจะมีเป็นด่านๆ

ผมว่าเกมนี้เหมาะสำหรับผู้ปกครองแนะนำให้ลูกให้หลานเล่นมากๆเลยล่ะครับ ฝึกทักษะได้ดีนักแล ยิ่งถ้ามี Tablet หรือ Touch Screen แล้วละก็ยิ่งสนุกเลยล่ะครับ

ว่าแล้วก็ลองไปเล่นกันเลย Magic Pen Online Game

ป.ล. ขอบคุณอาจารย์ทรงเกียรติอดีตเจ้าสำนัก CGITOP ที่แนะนำเกมสร้างสรรแบบนี้มาครับ

Adobe Flash samples

Tuesday, June 12th, 2007

หลายตัวอย่างใน Flex Help จะอ้างอิงไปยัง Flash samples ครับ เช่น FileIO ที่เกี่ยวกับการ upload/download ด้วย Flex/Flash

Adobe Flash samples

FusionCharts Free

Monday, May 21st, 2007

fusioncharts.jpg

หลังจากเขียนเรื่อง Chart FX for Java Community Edition (Free) ไปแล้ว… (more…)

Chart FX for Java Community Edition (Free)

Monday, May 21st, 2007

chartfx.gif

Web Developer หลายท่านคงรู้จัก Library ที่ชื่อ Chart FX ตัวนี้กันดีนะครับ ไม่ว่าจะเป็น .NET Developer หรือ Java Developer (more…)

File Upload in Flex/Flash

Monday, May 14th, 2007

เป็นที่รู้กันว่า Flash และ Flex ไม่มี Component สำหรับ File Upload โดยตรง ทำให้ต้องใช้เทคนิคเล็กน้อยดังนี้ครับ

File Upload in Flex/Flash in Internet Explorer