animazione flash dynamica in blocco drupal
prima di tutto ciao a tutti, spero di poter essere d'aiuto in quel pò che conosco,
da tre settimane mi ritrovo con un problema che pensavo fosse stato risolto da qualcuno, ma gira e rigira ho visto che ancora c'è molta confusione, almeno da parte mia.
ho la neccesità di inserire su un blocco una galleria flash dinamica sin qui sembrava tutto ok perche ci sono riuscito ma ho creato il tutto e con un semplice hmtl riesco a caricare l' animazione e tutto sia su firefox che su Internet explorer
codice HTML che fa funzionare il mio file
<html lang="it">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>galleria</title>
<script language="JavaScript" type="text/javascript">
<!--
//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2008 Adobe Systems Incorporated. All rights reserved.
var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
function ControlVersion()
{
var version;
var axo;
var e;
// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
try {
// version will be set for 7.X or greater players
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
version = axo.GetVariable("$version");
} catch (e) {
}
if (!version)
{
try {
// version will be set for 6.X players only
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
// installed player is some revision of 6.0
// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
// so we have to be careful.
// default to the first public version
version = "WIN 6,0,21,0";
// throws if AllowScripAccess does not exist (introduced in 6.0r47)
axo.AllowScriptAccess = "always";
// safe to call for 6.0r47 or greater
version = axo.GetVariable("$version");
} catch (e) {
}
}
if (!version)
{
try {
// version will be set for 4.X or 5.X player
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
version = axo.GetVariable("$version");
} catch (e) {
}
}
if (!version)
{
try {
// version will be set for 3.X player
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
version = "WIN 3,0,18,0";
} catch (e) {
}
}
if (!version)
{
try {
// version will be set for 2.X player
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
version = "WIN 2,0,0,11";
} catch (e) {
version = -1;
}
}
return version;
}
// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
// NS/Opera version >= 3 check for Flash plugin in plugin array
var flashVer = -1;
if (navigator.plugins != null && navigator.plugins.length > 0) {
if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
var descArray = flashDescription.split(" ");
var tempArrayMajor = descArray[2].split(".");
var versionMajor = tempArrayMajor[0];
var versionMinor = tempArrayMajor[1];
var versionRevision = descArray[3];
if (versionRevision == "") {
versionRevision = descArray[4];
}
if (versionRevision[0] == "d") {
versionRevision = versionRevision.substring(1);
} else if (versionRevision[0] == "r") {
versionRevision = versionRevision.substring(1);
if (versionRevision.indexOf("d") > 0) {
versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
}
}
var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
}
}
// MSN/WebTV 2.6 supports Flash 4
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
// WebTV 2.5 supports Flash 3
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
// older WebTV supports Flash 2
else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
else if ( isIE && isWin && !isOpera ) {
flashVer = ControlVersion();
}
return flashVer;
}
// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
versionStr = GetSwfVer();
if (versionStr == -1 ) {
return false;
} else if (versionStr != 0) {
if(isIE && isWin && !isOpera) {
// Given "WIN 2,0,0,11"
tempArray = versionStr.split(" "); // ["WIN", "2,0,0,11"]
tempString = tempArray[1]; // "2,0,0,11"
versionArray = tempString.split(","); // ['2', '0', '0', '11']
} else {
versionArray = versionStr.split(".");
}
var versionMajor = versionArray[0];
var versionMinor = versionArray[1];
var versionRevision = versionArray[2];
// is the major.revision >= requested major.revision AND the minor version >= requested minor
if (versionMajor > parseFloat(reqMajorVer)) {
return true;
} else if (versionMajor == parseFloat(reqMajorVer)) {
if (versionMinor > parseFloat(reqMinorVer))
return true;
else if (versionMinor == parseFloat(reqMinorVer)) {
if (versionRevision >= parseFloat(reqRevision))
return true;
}
}
return false;
}
}
function AC_AddExtension(src, ext)
{
if (src.indexOf('?') != -1)
return src.replace(/\?/, ext+'?');
else
return src + ext;
}
function AC_Generateobj(objAttrs, params, embedAttrs)
{
var str = '';
if (isIE && isWin && !isOpera)
{
str += '<object ';
for (var i in objAttrs)
{
str += i + '="' + objAttrs[i] + '" ';
}
str += '>';
for (var i in params)
{
str += '<param name="' + i + '" value="' + params[i] + '" /> ';
}
str += '</object>';
}
else
{
str += '<embed ';
for (var i in embedAttrs)
{
str += i + '="' + embedAttrs[i] + '" ';
}
str += '> </embed>';
}
document.write(str);
}
function AC_FL_RunContent(){
var ret =
AC_GetArgs
( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
, "application/x-shockwave-flash"
);
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_SW_RunContent(){
var ret =
AC_GetArgs
( arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
, null
);
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
var ret = new Object();
ret.embedAttrs = new Object();
ret.params = new Object();
ret.objAttrs = new Object();
for (var i=0; i < args.length; i=i+2){
var currArg = args[i].toLowerCase();
switch (currArg){
case "classid":
break;
case "pluginspage":
ret.embedAttrs[args[i]] = args[i+1];
break;
case "src":
case "movie":
args[i+1] = AC_AddExtension(args[i+1], ext);
ret.embedAttrs["src"] = args[i+1];
ret.params[srcParamName] = args[i+1];
break;
case "onafterupdate":
case "onbeforeupdate":
case "onblur":
case "oncellchange":
case "onclick":
case "ondblclick":
case "ondrag":
case "ondragend":
case "ondragenter":
case "ondragleave":
case "ondragover":
case "ondrop":
case "onfinish":
case "onfocus":
case "onhelp":
case "onmousedown":
case "onmouseup":
case "onmouseover":
case "onmousemove":
case "onmouseout":
case "onkeypress":
case "onkeydown":
case "onkeyup":
case "onload":
case "onlosecapture":
case "onpropertychange":
case "onreadystatechange":
case "onrowsdelete":
case "onrowenter":
case "onrowexit":
case "onrowsinserted":
case "onstart":
case "onscroll":
case "onbeforeeditfocus":
case "onactivate":
case "onbeforedeactivate":
case "ondeactivate":
case "type":
case "codebase":
case "id":
ret.objAttrs[args[i]] = args[i+1];
break;
case "width":
case "height":
case "align":
case "vspace":
case "hspace":
case "class":
case "title":
case "accesskey":
case "name":
case "tabindex":
ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
break;
default:
ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
}
}
ret.objAttrs["classid"] = classid;
if (mimeType) ret.embedAttrs["type"] = mimeType;
return ret;
}
// -->
</script>
<script language="JavaScript" type="text/javascript">
<!--
// -----------------------------------------------------------------------------
// Globali
// È richiesta la versione principale di Flash
var requiredMajorVersion = 10;
// È richiesta la versione minore di Flash
var requiredMinorVersion = 0;
// Versione di Flash richiesta
var requiredRevision = 2;
// -----------------------------------------------------------------------------
// -->
</script>
<style type="text/css">
<!--
body {
margin: 0px;
padding: 0px;
height: 100%;
width: 100%;
}
-->
</style>
</head>
<body bgcolor="#ffffff">
<!--URL utilizzato nel filmato-->
<!--testo utilizzato nel filmato-->
<script language="JavaScript" type="text/javascript">
<!--
var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
if(hasRightVersion) { // se è stata rilevata una versione accettabile
// incorpora il filmato Flash
AC_FL_RunContent(
'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,2,0',
'width', '100%',
'height', '100%',
'src', 'xml_image_gallery_recorder',
'quality', 'high',
'pluginspage', 'http://www.adobe.com/go/getflashplayer',
'align', 'middle',
'play', 'true',
'loop', 'true',
'scale', 'showall',
'wmode', 'transparent',
'devicefont', 'false',
'id', 'xml_image_gallery_recorder',
'bgcolor', '#ffffff',
'name', 'xml_image_gallery_recorder',
'menu', 'true',
'allowFullScreen', 'false',
'allowScriptAccess','sameDomain',
'movie', 'xml_image_gallery_recorder',
'salign', ''
); //end AC code
} else { // la versione di Flash è troppo vecchia o non è possibile rilevare il plug-in
var alternateContent = 'Il contenuto HTML alternativo deve essere posizionato qui. '
+ 'Questo contenuto richiede Adobe Flash Player. '
+ '<a href="http://www.adobe.com/go/getflashplayer/">Ottieni Flash</a>';
document.write(alternateContent); // Inserisci contenuto non Flash
}
// -->
</script>
<noscript>
// Fornisci contenuto alternativo per i browser che non supportano la creazione di script
// o in cui la funzione di creazione di script è disabilitata.
Il contenuto HTML alternativo deve essere posizionato qui. Questo contenuto richiede Adobe Flash Player.
<a href="http://www.adobe.com/go/getflashplayer/">Ottieni Flash</a>
</noscript>
</body>
</html>
____________________________________________________________________________________________
dopo questo sono entrato su drupalper cercare di inserire lo stesso codice sul nuovo blocco che dovrebbe funzionare mettendo come filtri tutto HTML che php ma niente non va
a questo punto leggendo ho visto che c'era bisogno di installare il modulo swftools ed ho aggiustato a quel punto i filtri del html, ma niente non va
allora ho pensato che fosse sbagliato implementare tutto questo codice nel blocco e quindi visto che comunque il template è stato fatto tramite artisteer
nel loro forum ho trovato questo codice che doveva funzionare
<div class="art-Header-jpeg"> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="989" height="201"> <param name="movie" value="http://www.stefswebsite.be/themes/spacenter/images/header.swf" /> <param name="quality" value="high" /> <embed src="http://www.stefswebsite.be/themes/spacenter/images/header.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="989" height="201"></embed> </object> </div>
ma anche in questo caso niente
HELP è moolto gradito
ciao Maurizio
Risposte
Ciao, prova questa porzione
Ciao, prova questa porzione di codice (sempre in Full Html):
<div class="art-Header-jpeg">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="989" height="201">
<param name="movie" value="http://www.stefswebsite.be/themes/spacenter4/images/flash.swf" />
<param name="quality" value="high" />
<embed src="http://www.stefswebsite.be/themes/spacenter4/images/flash.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="989" height="201"></embed>
</object>
</div>
mi sa che il problema era l'url del filmato.
allora se carico un semplice
allora se carico un semplice file flash lo carica in questo modo senza problemi se invece deve caricare seguendo altri file non va
guarda pure tu ecco il link della pagina che sto faccendo
http://www.nuovipoderi.com/node/16
mentre il link del file swf
http://www.nuovipoderi.com/sites/default/files/galleria/documenti.swf direttamente dal browser funziona
booooooo nun so proprio non va
Hmm ... a occhio e croce a
Hmm ... a occhio e croce a giudicare dal comportamento c'è qualche problema sui path per pescare le immagini all'interno del file flash, non dipende da altri fattori.
ma se fosse cosi non si
ma se fosse cosi non si dovrebbe vedere neanche quando vai a caricarlo direttamente dal link del swf, oppure sbaglio?
allora nel file flash vado a
allora nel file flash vado a fare questo lavoro
this.importXML = new XML();
this.importXML.ignoreWhite = true;
this.importXML.onLoad = function(success) {
if (success) {
var root = this.firstChild;
menuA = new Array();
for (var i = root.firstChild; i != null; i=i.nextSibling) {
menuA[menuA.length] = [i.attributes.name, i.attributes.image];
}
buildMenu();
} else {
trace("ERROR loading xml");
}
};
this.importXML.load("gallery.xml");
come vedi mi carico un file gallery.xml da dove poi andro a prendere la descrizione della foto e l'immagine
poi continuando
nella costruzione del menu
faccio cosi e qui passo la directory dove sono le foto
menuBack._visible = false;
menuNext._visible = false;
function buildMenu() {
this.createEmptyMovieClip("imageMenu",this.getNextHighestDepth());
imageMenu._x = 160;
imageMenu._y = 480;
this.createEmptyMovieClip("imageMenuMask",this.getNextHighestDepth());
imageMenuMask.attachMovie("menuMask","menuMask",this.getNextHighestDepth());
imageMenuMask._x = 160;
imageMenuMask._y = 480;
imageMenu.setMask(imageMenuMask);
menuLength = menuA.length;
if (menuLength<7) {
imageMenu._x = Math.round(480-(menuLength*97)/2);
} else {
recordNumber = 1;
records.text = (recordNumber+5)+" of "+menuLength+" images";
menuBack._visible = true;
menuNext._visible = true;
menuX = imageMenu._x;
}
menuSpacer = 7;
startX = 0;
for (var i = 0; i<menuLength; i++) {
imageMenu.attachMovie("element","e"+i,i);
e = imageMenu["e"+i];
e.name = menuA[i][0];
e.image = menuA[i][1];
e.alreadyViewed = 0;
e.thumbnail.loadMovie("photos/"+e.image+"_thumb.jpg");
e._x = startX;
startX += e._width+menuSpacer;
e.onRollOver = function() {
bounce("_alpha",0,this.menuOver,5,0);
_root.playOverSound();
};
e.onRollOut = function() {
bounce("_alpha",60,this.menuOver,10,0);
};
e.onPress = function() {
changeImage(this.name,this.image);
if (this.alreadyViewed == 0) {
this.viewed.gotoAndPlay(2);
}
this.alreadyViewed = 1;
};
if (i == (menuLength-1)) {
recordNumber = 1;
name = menuA[0][0];
image = menuA[0][1];
photoTitle.autoSize = "left";
changeImage(name,image);
}
}
}
photoNum = 0;
function changeImage(name, image) {
photoTitle.text = "";
currentPhoto = image;
photoName = name;
bounce("_rotation",15,this["photo"+photoNum],5,0);
bounce("_x",990,this["photo"+photoNum],8,0);
bounce("_alpha",30,this["photo"+photoNum],8,0);
photoNum++;
this.createEmptyMovieClip("photo"+photoNum,getNextHighestDepth());
this["photo"+photoNum].attachMovie("photo","photo",getNextHighestDepth());
oldPhoto = this["photo"+(photoNum-2)];
oldPhoto.removeMovieClip();
}
stop();
-----------------------------------------
il file xml e semplice niente di particolare*
<?xml version="1.0"?>
<gallery>
<photo name="Lorem ipsum dolor sit amet" image="foto1"/>
<photo name="Lorem ipsum dolor sit amet" image="foto2"/>
<photo name="Lorem ipsum dolor sit amet" image="foto3"/>
<photo name="Lorem ipsum dolor sit amet" image="foto4"/>
<photo name="Lorem ipsum dolor sit amet" image="foto5"/>
<photo name="Lorem ipsum dolor sit amet" image="foto6"/>
<photo name="Lorem ipsum dolor sit amet" image="foto7"/>
<photo name="Lorem ipsum dolor sit amet" image="foto8"/>
<photo name="Lorem ipsum dolor sit amet" image="foto9"/>
<photo name="Lorem ipsum dolor sit amet" image="foto10"/>
<photo name="Lorem ipsum dolor sit amet" image="foto11"/>
<photo name="Lorem ipsum dolor sit amet" image="foto12"/>
<photo name="Lorem ipsum dolor sit amet" image="foto13"/>
<photo name="Lorem ipsum dolor sit amet" image="foto14"/>
<photo name="Lorem ipsum dolor sit amet" image="foto15"/>
<photo name="Lorem ipsum dolor sit amet" image="foto16"/>
<photo name="Lorem ipsum dolor sit amet" image="foto17"/>
<photo name="Lorem ipsum dolor sit amet" image="foto18"/>
<photo name="Lorem ipsum dolor sit amet" image="foto19"/>
<photo name="Lorem ipsum dolor sit amet" image="foto20"/>
</gallery>
non mi sembra di aver sbagliato qualcosa
solo che su drupal non va proprio
se vuoi ti mando il file zip di tutto cosi eventualmente lo hai a portata di mano e mi dici se magari ho sbagliato qualcosa anche perche non mi rendo conto di cosa ho potuto sbagliare
Ciao, prova a modificare i
Ciao, prova a modificare i path di caricamento di xml e immagini, aggiungendo ad esempio un slash iniziale in modo che i path siano relativi alla working directory corrente.
Il problema è un pò ot, prova a vedere ad esempio http://www.actionscript.org/forums/showthread.php3?t=112615.
ho messo davanti ai nomi dei
ho messo davanti ai nomi dei file /
in questo modo
<?xml version="1.0"?>
<gallery>
<photo name="Lorem ipsum dolor sit amet" image="/foto1"/>
<photo name="Lorem ipsum dolor sit amet" image="/foto2"/>
<photo name="Lorem ipsum dolor sit amet" image="/foto3"/>
<photo name="Lorem ipsum dolor sit amet" image="/foto4"/>
<photo name="Lorem ipsum dolor sit amet" image="/foto5"/>
<photo name="Lorem ipsum dolor sit amet" image="/foto6"/>
<photo name="Lorem ipsum dolor sit amet" image="/foto7"/>
<photo name="Lorem ipsum dolor sit amet" image="/foto8"/>
<photo name="Lorem ipsum dolor sit amet" image="/foto9"/>
<photo name="Lorem ipsum dolor sit amet" image="/foto10"/>
<photo name="Lorem ipsum dolor sit amet" image="/foto11"/>
<photo name="Lorem ipsum dolor sit amet" image="/foto12"/>
<photo name="Lorem ipsum dolor sit amet" image="/foto13"/>
<photo name="Lorem ipsum dolor sit amet" image="/foto14"/>
<photo name="Lorem ipsum dolor sit amet" image="/foto15"/>
<photo name="Lorem ipsum dolor sit amet" image="/foto16"/>
<photo name="Lorem ipsum dolor sit amet" image="/foto17"/>
<photo name="Lorem ipsum dolor sit amet" image="/foto18"/>
<photo name="Lorem ipsum dolor sit amet" image="/foto19"/>
<photo name="Lorem ipsum dolor sit amet" image="/foto20"/>
</gallery>
ma niente
ho provatto anche ../
ma nulla
Prova a modificare i path
Prova a modificare i path delle righe
this.importXML.load("gallery.xml");
e.thumbnail.loadMovie("photos/"+e.image+"_thumb.jpg");
senza modificare il file xml.
Ti può essere utile anche il tag base (vedi http://kb2.adobe.com/cps/127/tn_12701.html) per impostare la directory di lavoro del filmato.
Spero ti sia utile.