2012-07-02 50 views
0

我在舞臺上播放了幾個視頻文件。我已將它們轉換爲影片剪輯,以便通過單擊來縮放和拖動它們。問題是我無法循環它們。動畫片段問題中的Flash視頻

然後我試圖讓它們成爲SWF播放對象,但之後我的代碼沒有與他們合作。

下一步是讓他們嵌入視頻對象,以便他們自動循環和代碼工作。之後,出現了一些問題,即物體在某個時刻複製。

這是原始代碼,因爲視頻是動畫片段。

var allDraggables:Array = new Array(); 
var mouseHold = false; 
stage.addEventListener(MouseEvent.MOUSE_UP, mUp); 

function mUp(MouseEvent) 
{ 
mouseHold = false; 
} 

function draggableObject(mc) 
{ 
var mouseOnThisObject = false; 
allDraggables.push(mc); 
mc.addEventListener(Event.ENTER_FRAME, drag); 
mc.addEventListener(MouseEvent.MOUSE_DOWN, mDown); 
function mDown(MouseEvent) 
{ 
    mouseHold = true; 
    mouseOnThisObject = true; 
} 

function drag(MouseEvent) 
{ 

    if (mouseHold == true && mouseOnThisObject == true) 
    { 
    mc.addEventListener(Event.ENTER_FRAME, dragger); 
    } 

    if (mouseHold == false) 
    { 
    mc.removeEventListener(Event.ENTER_FRAME, dragger); 
    mouseOnThisObject = false; 
    } 


} 

mc.doubleClickEnabled = true; 
mc.addEventListener(MouseEvent.DOUBLE_CLICK, scaleMe); 

function scaleMe(e:MouseEvent) 
{ 


if (e.target.scaleX < 2) 
{ 
e.target.scaleX= e.target.scaleY = 2; 
} 
else (e.target.scaleX= e.target.scaleY = 1); 
} 




function dragger(Event) 
{ 
    mc.x+=(mouseX-mc.x)/3; 
    mc.y+=(mouseY-mc.y)/3; 

    for (var i:int=0; i<allDraggables.length; i++){ 
    if(mc.hitTestObject(allDraggables[i]) && getChildIndex(allDraggables[i]) > getChildIndex(mc)){ 
    swapChildren(allDraggables[i], mc) 
    } 
    } 
} 
} 





draggableObject(green); 
draggableObject(red); 
draggableObject(video1); 
draggableObject(video2); 
draggableObject(video3);  
+0

所以我想要的結果是,視頻的行爲就像動畫片段,並且它們循環着。無論我怎樣做。 – Snellman

回答

0

那麼它很難說你究竟試了一下,因爲你沒有提供任何代碼(還)..

但是,從我的頭頂,我認爲這會工作:

if(videoMC1.currentFrame == 250) { //put the number of the last frame of the movieclip in place of 250 
    loopMC(); 
} 
function loopMC() { 
    videoMC1.stop(); 
    videoMC1.gotoAndPlay(1); 
} 

你在這裏做什麼很簡單;你檢查傳遞/播放的當前幀,當它到達所需的數字(在你的情況下最有可能是最後一幀)時,它調用重置和播放視頻的函數。

+0

謝謝,但沒有奏效 – Snellman

0

我發現了一些曾經在項目中使用過的舊代碼,也許你可以試試這個。在我的閃光燈應用程序中工作,雖然我沒有把視頻放入動畫片段。

import flash.media.Video; 
import flash.net.NetConnection; 
import flash.net.NetStream; 
import flash.events.NetStatusEvent; 

var nc:NetConnection = new NetConnection(); 

nc.connect(null); 
ns = new NetStream(nc); 
ns.bufferTime = 10; 

var vid:Video = new Video(1024,640); 
vid.attachNetStream(ns); 
addChild(vid); 
ns.addEventListener(NetStatusEvent.NET_STATUS, ns_onPlayStatus) 

function ns_onPlayStatus(event:NetStatusEvent):void {//loop video 
    if(event.info.code == "NetStream.Play.Stop") { 
     ns.seek(0); 
    } 
} 
相關問題