Show flash movies on questionnaire viewer

From Catglobe Wiki
Revision as of 05:22, 15 January 2009 by Catglobe (talk | contribs)
Jump to: navigation, search

Challenge

In order to view multiple flash movies in questionnaire viewer (which is similar to flash movies we already have in my portal, for further information please look at: http://wiki.catglobe.com/index.php/Movie_player_element)

As a questionnaire creator

I want to show a list of supported flash movies by Catglobe

Example

I have an single grid question like below

FlashPlayer.Jpeg

Solution

  • Upload the new flash movies to the CG server (or any resource you want) and get their links
  • Create a new single grid question named
    *Add javascript to the question to show a list of flash movies on above of grid

Code

Create Movie clip viewer object

var MovieclipViewer3 =<br>{<br>onInit: function(clip, element, linkText)<br>{<br>$(element).html("");<br>MovieclipViewer3.flash = CGFlashPlayers.initialize("xpflash", "http://fire.catglobe.com/Script/CGFlashPlayer/CGFlashPlayer.swf", 298,265);<br>$(element).html(MovieclipViewer3.flash.toString());<br>MovieclipViewer3.flash.ParentDom = $(element);<br><br>var p = $("&lt;p&gt;");<br>$(p).append($("&lt;u&gt;" + linkText + "&lt;/u&gt;").css("cursor","pointer").css("font-style", "italic").click(<br>function()<br>{<br>getPlayList();<br>}<br>));<br>$(element).append($("&lt;br/&gt;"));<br>$(element).append($(p));<br>$(element).append($("&lt;br/&gt;"));<br><br>MovieclipViewer3.flash.visiblePlaylistButton(false);<br>MovieclipViewer3.flash.visibleControlBar(false);<br>MovieclipViewer3.flash.registerEvent(CGFlashPlayers.Events.OnPlayListReady, MovieclipViewer3.onPlayListReady);<br>MovieclipViewer3.flash.registerEvent(CGFlashPlayers.Events.OnStop, MovieclipViewer3.onStop); 

// Prepare the play list<br>MovieclipViewer3.flash.openPlayList(clip);<br>},<br>onPlayListReady: function() <br>{<br>MovieclipViewer3.flash.play();<br>},<br>onStop: function() <br>{<br>getPlayList(); <br>}<br>}<br>

Create movies list

<source lang="javascript">

function getPlayList()
{
var clipLinks = new Array();
clipLinks[0] = "http://fire.catglobe.com/Attachments/GetAttachment.aspx?id=369842";
clipLinks[1] = "http://fire.catglobe.com/Attachments/GetAttachment.aspx?id=369843";
clipLinks[2] = "http://fire.catglobe.com/Attachments/GetAttachment.aspx?id=369844";
clipLinks[3] = "http://fire.catglobe.com/Attachments/GetAttachment.aspx?id=369845";
clipLinks[4] = "http://fire.catglobe.com/Attachments/GetAttachment.aspx?id=369846";
var clipNames = new Array();
clipNames[0] = "Clip 1";
clipNames[1] = "Clip 2";
clipNames[2] = "Clip 3";
clipNames[3] = "Clip 4";
clipNames[4] = "Clip 5";
var content = $(".playlist");
$(content).html("");
var p = $("<p>").css("padding-bottom", "5");
var ul = $("<ul>");
$(content).append($(p));
$(p).append($(ul));
for(var i= 0; i<clipLinks.length; i++)
{
$(ul).append($("<li>").text(clipNames[i]).css("cursor","pointer").css("font-style", "italic").val(i)
.click(
function()
{
MovieclipViewer3.onInit(clipLinks[this.value],content, "&lt;&lt;&lt; Back to main list");
}
)
)
}
}
</source>

Create a div storing movies list

<source lang="javascript">

quest.onInit = function()
{
if (document.createElement && document.getElementsByTagName) {
var head = document.getElementsByTagName('head')[0];

var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src','http://fire.catglobe.com/Script/CGFlashPlayer/CGFlashPlayer.js');

head.appendChild(script);
} else {
alert('Your browser can\'t deal with the DOM standard. That means it\'s old. Go fix it!');
}
//alert(quest.getHTML());
$(".grid_outer").before(
$("<table>").width("100%").attr("align", "center")
.append(
$("<tr>").css("background-color", "white")
.append(
$("<td>").attr("align", "center")
.append(
$("<div>")
.addClass("playlist")
)
)
)
)
getPlayList();
}
</source>