2010-02-19 262 views
1
我的Flash視頻播放器嵌入

設置:如何跟蹤其他網站上

  • 以「YouTube」的視頻像剪輯和類別
  • 我們自己的Flash視頻播放器,可以內嵌到其它遠程站點的在線電視頻道
  • AS2 flash播放器

目標: 要跟蹤誰是嵌入我的影片,至少每域基本統計。

由於它是AS2,所以很難做到這一點。我的想法是,我可以創建一個PHP頁面,每次玩家在任何網站上加載時都應該打開它;那麼Flash播放器可以對包含Google Analytics代碼或其他體面跟蹤器的PHP文件執行「geturl」操作。

geturl命令可能包含一個變量,如已包含在播放器中的視頻標題;這個標題將通過GET傳遞給PHP文件,並設置一個動態頁面標題,可以很好地跟蹤。

問題:如何在不讓用戶瀏覽器打開新選項卡或窗口的情況下使用GETURL函數。有沒有隱藏的方法來做到這一點?

回答

1

我發現的主要問題是在所述外部信息控制是否存在的allowScriptAccess在的HTML嵌入代碼只能存在,這樣的:

<param name="allowScriptAccess" value="always"> 

allowScriptAccess="always" 

在標籤。

這對我來說有點遲,因爲我不能告訴大家誰嵌入我的播放器將這些行添加到他們的網站,但從現在開始......無論如何,有人想隱藏可以很容易地刪除線。 因此,我將SWF文件重命名......現在,每個執行遠程嵌入的人都必須檢查並獲取新代碼。

這裏的AS2代碼工作:

function geturlhttp() { 
//urlPath = ExternalInterface.call("window.location.href.toString"); 
urlPath = ExternalInterface.call("eval","document.location.href"); 

//both work, try which one is bet 
} 
geturlhttp(); 


var lv:LoadVars = new LoadVars(); 

lv.var1 = urlPath; 
lv.var2 = title; //an internal variable, the name of the file 


lv.sendAndLoad("http://www.somesite.test/tracker.php",lv,"POST"); 

因此,跟蹤僅適用於我自己的網站,而不是外部遙控嵌入其中拿出空或SQL「空」的網站。

這裏是我用SQL編寫的PHP代碼。我只做了一些插入的東西,然後我會在顯示和選擇後面...

<?php 
//POST needs to be secured, this is just a test :) 
$url = $_POST['var1']; 
$title = $_POST['var2']; 

$dbhost = "127.0.0.1"; // almost always localhost. 
$dbname = "x"; // Database Name, In our case, its news 
$dbuser = "x"; // Database Username 
$dbpass = "x"; // Databse Password 


$connect = mysql_connect("$dbhost","$dbuser","$dbpass");// Connecting to Database 

mysql_select_db($dbname) or die (mysql_error()); // Selecting Database 

$sql= "INSERT INTO tablename (urlrow, titlerow) VALUES ('$url','$title')"; 
$result = mysql_query($sql); 

?> 
+0

這裏有更多的想法:可以在閃存EMBED標籤的SRC信息中使用動態url?如果是這樣,可以使用這個動態url進行跟蹤... – 2010-05-21 18:13:49

+0

哦,是的,我記得我的第一個想法,至少對於內容統計...基於從swf發送的動態變量創建一個帶有html標題和body的php文件播放器...並放置一個谷歌分析代碼,所以我得到了頁面標題的內容使用情況。 (URL可以動態生成,但可能會涉及mod_rewrite)。 – 2010-05-21 20:30:55

+0

對不起,錯別字......它真的很晚:) – 2010-05-22 11:43:30

0

要做到這一點,最簡單的方法是使用Load忱:

var lv:LoadVars = new LoadVars(); 

lv.var1 = "hostname"; 
lv.var2 = "browsersettings"; 

lv.send("http://yourserver/script.php, lv, "POST"); 

我真的不知道,如果有這方面的任何沙箱的限制。

+0

謝謝!我將在明天發佈結果 大多數限制關閉。我不得不關閉播放器,以便將播放器嵌入到場外並從站點加載一些xml文件。 – 2010-02-19 18:42:24

+0

對不起,不發佈。我想等一些統計數據收集。幾天後,我意識到Mochibot只跟蹤.swf文件主機,而不是遠程嵌入.swf的所有網站。 我想盡快嘗試loadvars方法,但現在我必須先在AS2中確實存在一個「全局」類型變量,它可以收集SWF播放站點的域名。 「主機名」可能是,但我只是試圖在測試開始之前確定。 希望有這樣的事情... – 2010-02-27 18:40:26

+0

你可以通過以下命令獲得域名:var pageURL:String = ExternalInterface.call('window.location.href.toString'); – Pbirkoff 2010-02-28 10:07:37

0

Salut Dan,

還沒做完as2。

mochi bot http://www.mochibot.com/images/i_hpss.gif

我記得我曾經mochibot, 你可以跟蹤你的SWF,無論它可能是 嵌入。

他們可能仍然有as2跟蹤。

+0

謝謝,mochibot是不錯的初學者,它也有一個AS2腳本太 – 2010-02-20 10:35:44

+0

Nicio problema Dan :) bun venit pe stackoverflow。 Nu uita sa votezi/bifezi raspunsurile de care multumit :) – 2010-02-20 13:24:11

+0

對不起,不發佈。我想等一些統計數據收集。幾天後,我意識到Mochibot只跟蹤.swf文件主機,而不是遠程嵌入.swf的所有網站。 – 2010-02-27 18:40:51