blog.Ring.idv.tw

Flash

Adobe AIR update for Flash CS3 Professional Beta 1

想要在Flash CS3底下開發Adobe AIR嗎?想要「Ctrl+Enter」就發佈成AIR嗎?

官方已經釋出 AIR:Flash CS3 Professional Update,趕緊去下載來試試看吧~

目前是beta 1版~ 我想等到Adobe AIR正式版問世後~ 這也應該會同步發佈成正式版的~

文件說明:

Using the Adobe AIR™update for Flash

Getting Started with Adobe AIR™ for Flash CS3 Professional

2007-08-21 10:20:23 | Add Comment

Flash Webcam 線上拍照存檔!~

.2008/12/10 新增範例下載

今天試著用Flash CS3寫一個Flash Webcam 線上拍照存檔的範例~

大致上分成兩部份來處理~一部份為Flash的前端,用來截取Webcam的畫面並將它存進BitmapData中,以供透過URLRequest來上傳處理~

而這部份比較關鍵的是,我們利用「as3corelib」所提供的「JPGEncoder」來進行壓縮,以增進傳送速度~

想當然而,後端就是直接將它讀出並存進一個影像檔即可。

程式碼如下所示:

ActionScript 3

import com.adobe.images.JPGEncoder;

var camera:Camera = Camera.getCamera("0");
camera.setMode(320,240,30);
var video = new Video(320, 240);
video.attachCamera(camera);
stage.addChild(video);
stage.addEventListener(MouseEvent.MOUSE_DOWN,clickHandler);
function clickHandler(event:MouseEvent)
{
	var bd:BitmapData = new BitmapData(320, 240);
	bd.draw(video);
	var encoder:JPGEncoder = new JPGEncoder(100);
	var bytes:ByteArray = encoder.encode(bd);
	var req:URLRequest = new URLRequest("http://localhost/WebCamHandler.as3");
	req.data = bytes;
	req.method = URLRequestMethod.POST;
	req.contentType = "application/octet-stream";
	var loader:URLLoader = new URLLoader();			
	loader.addEventListener(Event.COMPLETE, completeHandler);
	loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
	loader.load(req);
}
function completeHandler(event:Event):void
{
	trace("上傳成功");
}
function errorHandler(event:IOErrorEvent):void
{
	trace("上傳失敗");
}

Servlet

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class WebCamHandler extends HttpServlet
{
    private String base;
    
    public void init(ServletConfig sc) throws ServletException
    {
        ServletContext sco = sc.getServletContext();
        base = sco.getRealPath("/");
    }
    public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
    {   
        int readed;
        try
        {
            String filePath = base+new Date().getTime()+".jpg";
            BufferedInputStream bis = new BufferedInputStream(req.getInputStream());
            FileOutputStream fos = new FileOutputStream(new File(filePath));
            byte[] bytes = new byte[2048];
            while((readed=bis.read(bytes)) != -1)
            {
                fos.write(bytes, 0, readed);
            }
            fos.close();
            bis.close();
            
        } catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

範例下載

WebCamHandler(CS4、Webapp)

2007-08-19 15:19:20 | Comments (17)

DoABC Tag格式似乎有誤~

上圖是SWF and FLV File Format Specification (Version 9)所描述的DoABC Tag,從圖上可以知道此Tag裡頭包含了「Flags」和「ABCData」,然而真正在剖析時,似乎並不是那麼一回事~

Flash CS3(AS3)

Flex Showcase 1(已經過解壓處理)

www.deanzaextreme.com

Flex Showcase 2(已經過解壓處理)

www.vinnitsa.com

上述三張圖的「紅色」部份是DoABC Tag所包含的「Header」、「Length」和「Flags」,而「藍色」部份則是AS3 bytecode的「minor_version」和「major_version」,重點在於「綠色」部份卻沒有任何文件的說明,然而從Flex Showcase 1,2卻可以發現他所包含的資訊卻是「frame1」的字元,所以此部份的格式型態應該屬於「String」,也就是說在「Flags」之後緊接著的是「frame編號的資訊」,最後才是「ABCData」,但這部份仍屬於筆者的猜測。

2007-08-03 17:19:53 | Add Comment

ActionScript Virtual Machine 2 (AVM2) Overview 文件誤植~

ActionScript Virtual Machine 2 (AVM2) Overview這份文件中的第66頁,描述此「greaterequals」instruction,但其底下的「Format」、「Forms」是有錯誤的~

如下所示:

錯誤

[Format]:greaterthan
[Forms]:greaterthan = 175 (0xaf)

更正

[Format]:greaterequals
[Forms]:greaterequals = 176 (0xb0)

參考文件:AVM2 instructions

2007-08-02 18:21:27 | Add Comment

How to create pop-up browser windows in Flash

How to create pop-up browser windows in Flash

這篇技術教學會教導你如何在瀏覽器內利用Flash來開啟視窗~

舉個例子來說,以往我們都會利用「getURL()」來達成這樣的功能,但在AS3.0就必須改用「navigateToURL()」,或是採用執行JavaScript的方式來達成,諸如此類的應用都可以在這篇教學中找到你的答案!

2007-08-01 14:34:06 | Add Comment

Next Posts~:::~Previous Posts
Copyright (C) Ching-Shen Chen. All rights reserved.

::: 搜尋 :::

::: 分類 :::

::: Ads :::

::: 最新文章 :::

::: 最新回應 :::

::: 訂閱 :::

Atom feed
Atom Comment