隨筆 - 8  文章 - 55  trackbacks - 0
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          朋友的Blog

          最新評論

          閱讀排行榜

          評論排行榜

          Flash 8 攝像頭拍照

          作者: hawkOnFlying  時(shí)間: 2005-12-28 文檔類型:原創(chuàng) 來自: 藍(lán)色理想
          瀏覽統(tǒng)計(jì) total:7345 | year:5785 | Quarter:1482 | Month:108 | Week:46 | today:9

          前幾天幫朋友做一個(gè)東西用到的 code ,因?yàn)楹芫貌蛔?Flash coding 了。所以也就很少關(guān)心 Flash 8 的新的 Calss。但聽大家說過有這個(gè)功能。本想從網(wǎng)上找段教程或 code 來做。可是發(fā)現(xiàn)國內(nèi)還沒有類似的。就只能自己動手豐衣足食了。

          開始做法:
          第一步:在庫中建立一個(gè)視頻元件,類型選擇:視頻(受 ActionScript 控制)。
          第二步:將視頻元件拖到場景中,并調(diào)整尺寸到想要的大小。并起名為“my_video”
          第三步:在時(shí)間軸中粘入下邊的 code :

          var my_video:Video;
          my_video._x=100;
          my_video._y=40;
          var my_cam:Camera = Camera.get();
          my_cam.setMode(180, 140, 10, true);
          my_video.attachVideo(my_cam);

          shutter.onRelease = function() {
          ?myBitmap = new flash.display.BitmapData(180, 240, true, 0);
          ?myBitmap.draw(my_video);
          ?var tempObj = _root.createEmptyMovieClip("photo", 100);
          ?tempObj._x = 300;
          ?tempObj._y = 40;
          ?tempObj.attachBitmap(myBitmap, 1, "always", true);
          };

          Testing 發(fā)現(xiàn)有問題,拍出來照片只有 160x120 的區(qū)域有圖像。并且圖像變形了。

          什么地方出了問題呢?

          最后發(fā)現(xiàn) my_video 復(fù)制到場景中調(diào)整大小時(shí)并不是改變 my_video.width 及 my_video.height 屬性,而是改變 my_video._width 及 my_video._height 屬性。原有視頻元件的尺寸只有 160x120 。這就相當(dāng)于將 my_video 作了形變。而 BitmapData.draw() 是不會考慮源元件的形變的。官方的說法是:源 MovieClip 對象不對此調(diào)用使用其任何舞臺中轉(zhuǎn)換。該源 MovieClip 對象會被視為存在于庫或文件中,沒有矩陣轉(zhuǎn)換、沒有顏色轉(zhuǎn)換,也沒有混合模式。如果您希望通過使用影片剪輯自身的 transform 屬性來繪制影片剪輯,則可以使用它的 Transform 對象來傳遞各種 transformation 屬性。

          我開始沒注意他給出的解決辦法。我想既然 draw() 不考慮源元件的形變,那只能自己在輸出的照片元件上想辦法做形變了。于是有了下面這段 code :

          var my_video:Video;
          my_video._x=100;
          my_video._y=40;
          var my_cam:Camera = Camera.get();
          my_cam.setMode(180, 140, 10, true);
          my_video.attachVideo(my_cam);

          shutter.onRelease = function() {
          ?myBitmap = new flash.display.BitmapData(160, 120, true, 0);
          ?myBitmap.draw(my_video);
          ?var tempObj = _root.createEmptyMovieClip("photo", 100);
          ?tempObj._x = 300;
          ?tempObj._y = 40;
          ?tempObj._width= 180;
          ?tempObj._height = 240;
          ?tempObj.attachBitmap(myBitmap, 1, "always", true);
          };

          這下照片是想要的大小了,而且圖像也沒有了變形。但發(fā)現(xiàn)圖像沒有攝像頭顯示的清晰。
          想了一下,那是當(dāng)然,draw() 不考慮源元件的形變,draw時(shí)my_video 被當(dāng)作 160x120 來draw了。
          那能不能通過改變 my_video.width 及 my_video.height 屬性來改變 my_video 的尺寸而不是將 my_video 作形變呢?不能!!!my_video.width 及 my_video.height 屬性是只讀屬性。

          解決方法:
          第一步:用視頻編輯軟件制作一個(gè) 180x240 尺寸的1貞的白色 mov 視頻文件。
          第二步:用 Macromedia Flash 8 Video Encoder 將mov視頻文件轉(zhuǎn)為 flv 視頻文件。
          第三步:在庫中建立一個(gè)視頻元件,類型選擇:嵌入(與時(shí)間軸同步)。
          第四步:將視頻元件拖到場景中,并起名為“my_video”Testing 發(fā)現(xiàn) my_video.width 及 my_video.height 屬性為 180x120 。
          第五步:在時(shí)間軸中粘入下邊的 code :

          var my_video:Video;
          my_video.clear()
          my_video._x=100;
          my_video._y=40;
          var my_cam:Camera = Camera.get();
          my_cam.setMode(180, 140, 10, true);
          my_video.attachVideo(my_cam);

          shutter.onRelease = function() {
          ?myBitmap = new flash.display.BitmapData(160, 120, true, 0);
          ?myBitmap.draw(my_video);
          ?var tempObj = _root.createEmptyMovieClip("photo", 100);
          ?tempObj._x = 300;
          ?tempObj._y = 40;
          ?tempObj._width= 180;
          ?tempObj._height = 240;
          ?tempObj.attachBitmap(myBitmap, 1, "always", true);
          };

          好了,現(xiàn)在所有問題都解決了。

          posted on 2006-06-06 12:00 blog搬家了--[www.ialway.com/blog] 閱讀(543) 評論(0)  編輯  收藏 所屬分類: FMS
          主站蜘蛛池模板: 勐海县| 南通市| 庄河市| 随州市| 宣化县| 芦山县| 长阳| 凤庆县| 芮城县| 麻阳| 呈贡县| 德州市| 淮南市| 乌鲁木齐县| 南康市| 西畴县| 枣庄市| 永寿县| 衢州市| 澳门| 南川市| 平度市| 彰化市| 义乌市| 栖霞市| 临湘市| 湟源县| 区。| 镇江市| 新安县| 广安市| 剑河县| 治多县| 贡嘎县| 乳源| 盐池县| 凤山县| 保康县| 广灵县| 南投市| 万年县|