2013-10-31 31 views
1

我發佈了一個關於超級用戶的問題,它似乎有一個代碼相關的答案,所以在這裏。我有個問題;我需要在線分享視頻,但需要找到一種完全停止的方式,或者至少讓人們難以下載並在線觀看視頻。我知道,如果可能的話,好萊塢已經做到了,但我有一個主意......Flash動畫和ActionScript - 停止視頻脫機工作

幾年前,我偶然發現了newgrounds.com上的一個視頻,flash動畫製作者發佈了他們的網站內容供用戶評價,反饋和評論,我花了幾個小時下載視頻以在學校播放它們的地方(諷刺的是......),但我記得一個視頻是不同的。下載後,打開.swf文件,它停止播放,並顯示一個框,上面寫着「對不起,這個動畫是在newgrounds.com上查看的,你可以隨時找到它!」。我當時很生氣,但現在它給了我一個主意......

有沒有什麼辦法可以讓動畫檢查正在播放的文件的當前位置/目錄,以便如果它發現它是從物理計算機播放而不是要從其播放的服務器播放,它會完全停止播放?

回答

0

此功能稱爲「站點鎖定」。你可以谷歌這個詞來獲取更多信息。這裏是AS3遊戲博客「Emenuelle Ferronato」的鏈接,其中包含關於如何鎖定文件的教程。

http://www.emanueleferonato.com/2008/03/10/how-to-sitelock-a-flash-movie/

的博客給出了AS2的代碼,所以我更新了它下面使用AS3。此代碼需要訪問舞臺,並且您需要在鎖定檢查應執行的時間點調用「sitelock(urls_allowed)」。

urls_allowed = ["www.emanueleferonato.com", "www.triqui.com"]; 
sitelock(urls_allowed); 
function sitelock(urls_allowed) { 
    lock = true; 
    domain_parts = stage.loaderInfo.url.split("://"); 
    real_domain = domain_parts[1].split("/"); 
    domain.text = real_domain[0]; 
    for (x in urls_allowed) { 
     if (urls_allowed[x] == real_domain[0]) { 
      lock = false; 
     } 
    } 
    if (lock) { 
     stage.alpha = 0;// make sure this function has access to the stage. 
    } 
} 
+0

哇...這就是我一直在尋找...我假設這將檢查並讓我知道如果該文件目前不在線,對不對? –

+0

是的,它會這樣做。除非有人命名一個文件夾「www.emanueleferonato.com」。但是你可以檢查domain_parts [0]並檢查它是否包含「file://」sicne,任何本地播放都會將它作爲loaderInfo.url屬性的url屬性。如果您爲您解決問題,請點擊「接受答案」。 –

2

我相信,通過stage.loaderInfo.url,您可以獲得SWF正在播放的URL(通常是頁面的位置,如果嵌入HTML)。所以你可以檢查一下你的網站的URL。

這可以被愚弄,雖然。我可以在我的機器上設置一個虛擬主機,這可能會模仿你的網站在loaderInfo的地址,這將允許我播放它。使用某種形式的DRM比你更好。一般來說,DRM比僞造網址要困難得多。