picasa flash player

一路都想加一個像樣的player 去播放picasa 相簿的東西,用google 可以找到的都有時不合心意,由於它們全都沒有得設定width, 一下就會弄亂個sidebar, 所以總是不能加上....

最近在堯@部落格看到了一個不錯的方法,不單止外觀不錯,而且也可以自己設定width 及height, 而且也是用html/javascript 的元素,完全乎合我的要求呢...也且安裝方法也很解單....


完本的設計是預設了第一本的相簿...但我還是喜歡隨機的,每次進入都可看到不同的會有一種新鮮感吧....所以作出了一些改動


<div id="picasa_control">
Loading...
</div>
<div id="picasaweb">
</div>
<script>

var flashstring='<embed pluginspage="http://www.macromedia.com/go/getflashplayer" width="218" src="http://picasaweb.google.com.hk/s/c/bin/slideshow.swf" height="192" flashvars="host=picasaweb.google.com.hk&captions=1&RGB=0x000000&feed=http%3A%2F%2Fpicasaweb.google.com.hk%2Fdata%2Ffeed%2Fapi%2Fuser%2YOURID%2Falbumid%2F##ALBUMID##%3Fkind%3Dphoto%26alt%3Drss" type="application/x-shockwave-flash"></embed>';

function writeflash(albumid){
flashstring1=flashstring.replace("##ALBUMID##",albumid);
document.getElementById("picasaweb").innerHTML=flashstring1;
}

function listallalbum(json) {
var first = '';
var temp = '播放相簿 : <select onchange="writeflash(this.options[this.selectedIndex].value)" style="font-size:10px">';
var sortentry=json.feed.entry;
var albumno = json.feed.openSearch$totalResults.$t;
var startIndex = json.feed.openSearch$startIndex.$t;

var displayIndex = Math.round(Math.random() * (albumno-startIndex-1))

for (var i=0, post; post = sortentry[i]; i++) {
var title = post.title.$t;

var link = post.link[2].href.replace(/(^.*albumid\/)(.*)(\?.*$)/g,"$2");

if (displayIndex == i){
first = link;
temp += '<option selected="selected" value="'+link+'">'+title +'</option>';
} else {
temp += '<option value="'+link+'">'+title +'</option>';
}

}
temp+="</select>";

document.getElementById("picasa_control").innerHTML=temp;

writeflash(first);

}

</script>

<script src="http://picasaweb.google.com.hk/data/feed/base/user/matthewhkh?kind=album&hl=en_US&access=public&alt=json&callback=listallalbum"></script>


只要把上面的code 放在一個html/javascript 元素入面便可以了.
紅色的地方可以用來設定flash player 的height 及 width, 而黑色的地方就是用來設定相簿名稱

這部份就是用來設定隨機相簿的地方...

var sortentry=json.feed.entry;
var albumno = json.feed.openSearch$totalResults.$t;
var startIndex = json.feed.openSearch$startIndex.$t;

var displayIndex = Math.round(Math.random() * (albumno-startIndex-1))


由於看來openSearch$totalResults會連一些不公開的相簿數也計算在內,所以要減去openSearch$startIndex才是真正公開的相簿數

0 回應:

Post a Comment