下面是我想要做的: 我有一個簡單的衰落過渡的圖片幻燈片。我沒有源文件,我想從幻燈片中提取所有單張圖片。我已將視頻導入到閃光燈中,以便視頻中的所有圖像都是關鍵幀。FLASH AS3:以編程方式刪除關鍵幀
所以現在,我有一個電影約有10,000個關鍵幀。我有一個我不想要的關鍵幀的已知間隔(當圖片單獨在一個框架上,而不是與另一個圖片進行轉換時)。
我可以:
- 刪除關鍵幀的間隔
- 創建一個新的影片剪輯/文件/場景......有我想要的關鍵幀
任何建議將是很有幫助!謝謝
下面是我想要做的: 我有一個簡單的衰落過渡的圖片幻燈片。我沒有源文件,我想從幻燈片中提取所有單張圖片。我已將視頻導入到閃光燈中,以便視頻中的所有圖像都是關鍵幀。FLASH AS3:以編程方式刪除關鍵幀
所以現在,我有一個電影約有10,000個關鍵幀。我有一個我不想要的關鍵幀的已知間隔(當圖片單獨在一個框架上,而不是與另一個圖片進行轉換時)。
我可以:
任何建議將是很有幫助!謝謝
你不能複製像你想要做的關鍵幀,但我可以爲你提供一種方法來播放你的電影/動畫片段而不需要不需要的幀。
首先,你應該在enterFrame事件添加事件偵聽器:
addEventListener(Event.ENTER_FRAME, onEnterFrame);
然後,你可以寫一個方法來定義您的有效框架:
private function isValidFrame(frameIndex:uint):Boolean
{
return frameIndex > 10 //range start
&& frameIndex < 3000 //range end
&& [62, 15, 337].indexOf(frameIndex) == -1;//add forbidden frames here
}
而且finaly,你可以寫你的enterFrame事件監聽器:
private function onEnterFrame(e:Event):void
{
var frameIndex:uint = this.currentFrame;
while (!isValidFrame(frameIndex))
{
frameIndex++;
if (frameIndex >= 10000)
{
//stop everything
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
}
}
gotoAndStop(frameIndex);
}
乾杯!
爲什麼要刪除關鍵幀?您可以轉到您想要的確切關鍵幀,然後在該幀的動畫片段中製作位圖副本。 這裏有個稍微util的I類總覽被從的DisplayObject使位圖副本:
package{
import flash.display.DisplayObject;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Point;
public final class Cropper{
public function Cropper():void{}
public static function crop(_x, _y, _w:Number, _h:Number, displayObject:DisplayObject):Bitmap
{
var cropArea:Rectangle = new Rectangle(_x, _y, _w, _h);
var croppedBitmap:Bitmap = new Bitmap(new BitmapData(_w, _h, true, 0x00000000));
var dispObjData:BitmapData = new BitmapData(displayObject.width, displayObject.height, true, 0x00000000);
dispObjData.draw(displayObject);
croppedBitmap.bitmapData.copyPixels(dispObjData, cropArea, new Point(0, 0), null, null, true);
return croppedBitmap;
}
}
}
而且你可以使用它在一個循環來遍歷一個關鍵幀陣列上,使副本,多少像這樣的:
var arr:Array = new Array(1, 10, 20, 30, 40...);
for(var i:int = 0; i < arr.length; i++){
yourDisplayObject.gotoAndStop(arr[i]);
var cropPic:Bitmap = Cropper.crop(x, y, width, height, displayObjectToCopy);
}
告訴我,如果你的作品...