Olá, Visitante. Por favor Entre ou Registe-se se ainda não for membro.
4 de Dezembro de 2008, 19:31:44
Início Ajuda Pesquisa Entrar Registe-se
Notícias: Problemas com o fórum? Contacte-nos.


+  Redcodestudio
|-+  Flash Flex RIA Communities
| |-+  Flash Developer
| | |-+  [dúvida] flash-html (scritp não passa na validação W3C)
« anterior seguinte »
Páginas: [1] 2 Ir para o fundo Imprimir
Autor Tópico: [dúvida] flash-html (scritp não passa na validação W3C)  (Lida 5743 vezes)
lmw
Aprendiz
**
Offline Offline

Mensagens: 65



Ver Perfil WWW
« em: 4 de Maio de 2007, 13:57:52 »

recentemente comecei a "crivar" os sites que estou a desenvolver na validação W3C e deparei-me com vários erros quando se ussa o html gerado pelo flash.
consegui resolver quase todos comparando um html gerado pelo do dreamwever mas continuo a ter um erro na parte do script para detectar se os pcs dos visitantes têm a versão correcta do flash player instalado

começa por este erro:
Error Line 83 column 18: invalid comment declaration: found character ")" outside comment but inside comment declaration.
   for (i=25;i>0;i--) {   
Check that you are using a proper syntax for your comments, e.g: <!-- comment here -->. This error may appear if you forget the last "--" to close one comment, and later open another.


pelo pouco que conheço fico com a ideia que o sistema de validação não reconhece o script inserido pelo flash

gostaria de resolver esta questão mantendo uma forma de determinar a versão do flash player e encaminhando o visitante que não tenha a versão necessária para o local onde pode descarregar o ficheiro
Registado

saudações!
LMw
yarcub
Aprendiz
**
Offline Offline

Mensagens: 138


Ver Perfil
« Responder #1 em: 4 de Maio de 2007, 16:52:33 »

Oi, podes postar o código que tens para podermos analisar melhor?

Eu uso sempre o swfObject, mas nunca experimentei a fazer a validação do HTML/Javascript.
Registado
alftuga
Aprendiz
**
Offline Offline

Mensagens: 202


Ver Perfil WWW
« Responder #2 em: 4 de Maio de 2007, 19:02:37 »

Citar
encaminhando o visitante que não tenha a versão necessária para o local onde pode descarregar o ficheiro


automaticamente?

mas a melhor solução é mesmo como o yarcub diz

swfObject



e só para dar uma ajuda aqui vai um artigo bastante interessante...

http://blog.deconcept.com/2006/08/16/embedding-flash-content-using-web-standards-yes-again/
Registado
lmw
Aprendiz
**
Offline Offline

Mensagens: 65



Ver Perfil WWW
« Responder #3 em: 5 de Maio de 2007, 13:50:17 »

Citação de: "yarcub"
Oi, podes postar o código que tens para podermos analisar melhor?.

tentei colocar aqui o código mas quando faço submeter aparece a seguinte mensagem:
Forbidden
You don't have permission to access /posting.php on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

o código é bastante comprido vou coloca-lo depois num txt para o poderem visualizar
Citar

Eu uso sempre o swfObject, mas nunca experimentei a fazer a validação do HTML/Javascript.

desconhecia esse código, mas é uma questão de exprimentar a ver se passa na validação.[/code]
Registado

saudações!
LMw
gimbras
Emblema de Prata
****
Offline Offline

Mensagens: 1103



Ver Perfil WWW
« Responder #4 em: 7 de Maio de 2007, 23:29:53 »

Não consegues postar porque o teu código deve estar a começar por script="text/javascript". Coloca todo o código menos essa primeira linha e já deve dar.

Cumps.
Registado

lmw
Aprendiz
**
Offline Offline

Mensagens: 65



Ver Perfil WWW
« Responder #5 em: 9 de Maio de 2007, 00:26:20 »

Citação de: gimbras
Não consegues postar porque o teu código deve estar a começar por script="text/javascript". Coloca todo o código menos essa primeira linha e já deve dar.
quote]

ok, aqui vai, como disse é bem compridote(!) e provavelmente não é necessário toda esta palafrenália de scripts mas quem não sabe...

1ª parte - javascript
// Globals
// Major version of Flash required
var requiredMajorVersion = 8;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Revision of Flash required
var requiredRevision = 0;
// the version of javascript supported
var jsVersion = 1.0;
</script>

2ª parte - VBScript
<!-- // Visual basic helper required to detect Flash Player ActiveX control version information
Function VBGetSwfVer(i)
  on error resume next
  Dim swControl, swVersion
  swVersion = 0
  set swControl = CreateObject("ShockwaveFlash.ShockwaveFlash." + CStr(i))
  if (IsObject(swControl)) then
    swVersion = swControl.GetVariable("$version")
  end if
  VBGetSwfVer = swVersion
End Function
// -->
</script>

3ª parte - JavaScript1.1
 type="text/javascript">
<!-- // Detect Client Browser type
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;
jsVersion = 1.1;
// JavaScript helper required to detect Flash Player PlugIn version information
function JSGetSwfVer(i){
   // NS/Opera version >= 3 check for Flash plugin in plugin array
   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;
         descArray = flashDescription.split(" ");
         tempArrayMajor = descArray[2].split(".");
         versionMajor = tempArrayMajor[0];
         versionMinor = tempArrayMajor[1];
         if ( descArray[3] != "" ) {
            tempArrayMinor = descArray[3].split("r");
         } else {
            tempArrayMinor = descArray[4].split("r");
         }
            versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
            flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
         } else {
         flashVer = -1;
      }
   }
   // 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;
   // Can't detect in all other cases
   else {
      
      flashVer = -1;
   }
   return flashVer;
}
// If called with no parameters this function returns a floating point value
// which should be the version of the Flash Player or 0.0
// ex: Flash Player 7r14 returns 7.14
// If called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
    reqVer = parseFloat(reqMajorVer + "." + reqRevision);
      // loop backwards through the versions until we find the newest version   
   for (i=25;i>0;i--) {   
      if (isIE && isWin && !isOpera) {
         versionStr = VBGetSwfVer(i);
      } else {
         versionStr = JSGetSwfVer(i);      
      }
      if (versionStr == -1 ) {
         return false;
      } else if (versionStr != 0) {
         if(isIE && isWin && !isOpera) {
            tempArray         = versionStr.split(" ");
            tempString        = tempArray[1];
            versionArray      = tempString .split(",");            
         } else {
            versionArray      = versionStr.split(".");
         }
         versionMajor      = versionArray[0];
         versionMinor      = versionArray[1];
         versionRevision   = versionArray[2];
         
         versionString     = versionMajor + "." + versionRevision;   // 7.0r24 == 7.24
         versionNum        = parseFloat(versionString);
           // is the major.revision >= requested major.revision AND the minor version >= requested minor
         if ( (versionMajor > reqMajorVer) && (versionNum >= reqVer) ) {
            return true;
         } else {
            return ((versionNum >= reqVer && versionMinor >= reqMinorVer) ? true : false );   
         }
      }
   }   
   return (reqVer ? false : 0.0);
}
// -->
</script>

4ª parte - JavaScrip
<!--
var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
if(hasRightVersion) {  // if we've detected an acceptable version
    var oeTags = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
    + 'width="800" height="600"'
    + 'codebase="https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">'
    + '<param name="movie" value="LMultimedia.swf" /><param name="loop" value="false" /><param name="menu" value="false" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" />'
    + '<embed src="LMultimedia.swf" loop="false" menu="false" quality="high" bgcolor="#000000" '
    + 'width="800" height="600" name="LMultimedia" align="middle"'
    + 'play="true"'
    + 'loop="false"'
    + 'quality="high"'
    + 'allowScriptAccess="sameDomain"'
    + 'type="application/x-shockwave-flash"'
    + 'pluginspage="https://www.macromedia.com/go/getflashplayer">'
    + '<\/EMBED>'
    + '<\/OBJECT>';
    document.write(oeTags);   // embed the flash movie
  } else {  // flash is too old or we can't detect the plugin
    var alternateContent = 'Alternate HTML content should be placed here.'
     + 'This content requires the Macromedia Flash Player.'
      + '<a href=https://www.macromedia.com/go/getflash/>Get Flash</a>';
    document.write(alternateContent);  // insert non-flash content
  }
// -->
</script>
Registado

saudações!
LMw
yarcub
Aprendiz
**
Offline Offline

Mensagens: 138


Ver Perfil
« Responder #6 em: 11 de Maio de 2007, 11:14:53 »

Com o swfObject tudo o que precisas de ter no teu HMTL é uma coisa do género:

Código:
<body>

<div id="flashcontent">
Conteúdo Alternativo.
</div>

script type="text/javascript">
// <![CDATA[

var so = new SWFObject("ecard.swf", "ecard", "100%", "100%", "8", "#FFFFFF");
so.addParam("scale", "noscale");
so.addParam("menu", "false");
so.write("flashcontent");

// ]]>
</script>

</body>


Tenho quase a certeza que passa na validação.
Registado
lmw
Aprendiz
**
Offline Offline

Mensagens: 65



Ver Perfil WWW
« Responder #7 em: 17 de Maio de 2007, 22:08:39 »

Tenho quase a certeza que passa na validação.

bem que queria expreimentar mas não sei como usar, não basta copiar e colar, pois não? é que nestas coisas de códigos sou bastante ainda sou muito verde e o que sei é na base do autodidacta.
Registado

saudações!
LMw
gimbras
Emblema de Prata
****
Offline Offline

Mensagens: 1103



Ver Perfil WWW
« Responder #8 em: 17 de Maio de 2007, 23:37:01 »

Cola isso numa página html, envia para o servidor e vai a http://validator.w3.org/check/referer e metes o endereço da tua página e vê se dá.

Cumps.
Registado

lmw
Aprendiz
**
Offline Offline

Mensagens: 65



Ver Perfil WWW
« Responder #9 em: 26 de Maio de 2007, 19:52:58 »

Cola isso numa página html, envia para o servidor e vai a http://validator.w3.org/check/referer e metes o endereço da tua página e vê se dá.
Cumps.

certo, isso eu percebi, só ainda não tive oportunidade de testar, o que eu queria saber era onde se colaca o nosso swf é no sítio onde está "conteúdo alternativo"?
Registado

saudações!
LMw
yarcub
Aprendiz
**
Offline Offline

Mensagens: 138


Ver Perfil
« Responder #10 em: 27 de Maio de 2007, 01:33:33 »

O conteúdo alternativo é o que os utilizadores vão ver se não tiverem a versão do flash player que tu queres.

O teu swf colocas no contructor do SWFObject.
Código:
var so = new SWFObject("ecard.swf", "ecard", "100%", "100%", "8", "#FFFFFF");

O exemplo que postei é de flash em full-browser.
Registado
lmw
Aprendiz
**
Offline Offline

Mensagens: 65



Ver Perfil WWW
« Responder #11 em: 31 de Maio de 2007, 20:50:58 »

tentei usar o código mas ainda há qq coisa que não deve estar a fazer bem pois quando vejo a página no browser apenas vejo o k está escrito no "conteúdo altenativo" e eu tenho player instalado.
eu apenas mudei o nome do swf na linha:
var so = new SWFObject("LMultimedia.swf", "LMultimedia", "100%", "100%", "8", "#FFFFFF");

falta mais alguma coisa?

outra coisa que não tava a funcionar mas dei com o erro é na linha:   
   script type="text/javascript">
faltava o símbolo < ao início


      
Registado

saudações!
LMw
yarcub
Aprendiz
**
Offline Offline

Mensagens: 138


Ver Perfil
« Responder #12 em: 1 de Junho de 2007, 01:54:05 »

Tens o teu browser a permitir correr javascript?
Registado
lmw
Aprendiz
**
Offline Offline

Mensagens: 65



Ver Perfil WWW
« Responder #13 em: 1 de Junho de 2007, 10:23:50 »

penso que sim, a versão do site LMultimedia que está online funciona e tem todo aquele código que coloquei num post deste tópico.
estive a ver as defenições avançadas do IE e está activa a opção "use java 2 v1.4.2_042 penso que com isso permite correr javascript, certo?
« Última modificação: 1 de Junho de 2007, 10:28:41 por lmw » Registado

saudações!
LMw
alftuga
Aprendiz
**
Offline Offline

Mensagens: 202


Ver Perfil WWW
« Responder #14 em: 1 de Junho de 2007, 10:42:28 »

java não tem nada a ver com javascript
Registado
Páginas: [1] 2 Ir para o topo Imprimir 
« anterior seguinte »
Ir para:  


Entrar com nome de utilizador, password e duração da sessão


Powered by MySQL Powered by PHP Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC
Seo4Smf v0.2 © Webmaster's Talks
XHTML 1.0 válido! CSS válido!
Página criada em 0.07 segundos com 19 procedimentos.