2010-02-19 164 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