Olá, Visitante. Por favor Entre ou Registe-se se ainda não for membro.
20 de Novembro de 2008, 23:38:22
Início Ajuda Pesquisa Entrar Registe-se
Notícias: Problemas com o fórum? Contacte-nos.


+  Redcodestudio
|-+  Programação Web
| |-+  JavaScript
| | |-+  [Duvida] Java Script (Flash aleatórios por visitante)
« anterior seguinte »
Páginas: [1] Ir para o fundo Imprimir
Autor Tópico: [Duvida] Java Script (Flash aleatórios por visitante)  (Lida 3005 vezes)
TripleHCP
Aprendiz
**
Offline Offline

Mensagens: 82


Ver Perfil
« em: 1 de Março de 2006, 11:05:38 »

Boas,

É assim, eu tenho aqui vários objectos Flash e queria usando JavaScript mostra-los aleatóriamente por visiatante.

Cumps
Registado
gimbras
Emblema de Prata
****
Offline Offline

Mensagens: 1101



Ver Perfil WWW
« Responder #1 em: 1 de Março de 2006, 18:26:21 »

:oops: Não quero ser chato, mas o próprio flash consegue fazer isso de swf aleatórios com a class random.

Smiley

Mas se quiseres isso em Javascript acho muito bem. Vou tentar encontrar o código.
Registado

gimbras
Emblema de Prata
****
Offline Offline

Mensagens: 1101



Ver Perfil WWW
« Responder #2 em: 10 de Março de 2006, 23:53:25 »

Aqui está parte do código:

Código:
<script language="Javascript">
<!--
// please keep these lines on when you copy the source
// made by: Nicolas - http://www.javascript-page.com

var currentdate = 0
var core = 0

function StringArray (n) {
  this.length = n;
  for (var i =1; i <= n; i++) {
    this[i] = ' '

  }
}

image = new StringArray(10)
image[0] = '0.gif'
image[1] = '1.gif'
image[2] = '2.gif'
image[3] = '3.gif'
image[4] = '4.gif'
image[5] = '5.gif'
image[6] = '6.gif'
image[7] = '7.gif'
image[8] = '8.gif'
image[9] = '9.gif'

var ran = 60/image.length

function ranimage() {
  currentdate = new Date()
  core = currentdate.getSeconds()
  core = Math.floor(core/ran)
    return(image[core])
}

document.write("<img src='" +ranimage()+ "'>")

//-->
</script>


Agora é tentar descobrir como substituir a última linha de código por uma que insira os ficheiros .SWF

Código:
document.write("<embed src='" +ranimage()+ "'quality="high" bgcolor="#ffffff" width="550" height="400" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />")


Tentei colocar isso tendo alterado o código inicial na array que continha os nomes dos ficheiros de imagens e ficou assim:

Código:
<script language="Javascript">
<!--
// please keep these lines on when you copy the source
// made by: Nicolas - http://www.javascript-page.com

var currentdate = 0
var core = 0

function StringArray (n) {
  this.length = n;
  for (var i =1; i <= n; i++) {
    this[i] = ' '

  }
}

image = new StringArray(2)
image[0] = '1.swf'
image[1] = '2.swf'


var ran = 2/image.length

function ranimage() {
  currentdate = new Date()
  core = currentdate.getSeconds()
  core = Math.floor(core/ran)
    return(image[core])
}

document.write("<embed src='" +ranimage()+ "'quality="high" bgcolor="#ffffff" width="550" height="400" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />")

//-->
</script>


Só funciona às vezes por provavelmente ele está a "rodar" muito mais que apenas 2 SWFs.

Só não sei é corrigir isso.
Mas vou procurar mais.

Cumps.
Registado

gimbras
Emblema de Prata
****
Offline Offline

Mensagens: 1101



Ver Perfil WWW
« Responder #3 em: 11 de Março de 2006, 14:49:28 »

Correcção: já consegui.

Código:
<script language="Javascript">
<!--
// please keep these lines on when you copy the source
// made by: Nicolas - http://www.javascript-page.com

var currentdate = 0
var core = 0

function StringArray (n) {
  this.length = n;
  for (var i =1; i <= n; i++) {
    this[i] = ' '

  }
}

image = new StringArray(10)
image[0] = '0.swf'
image[1] = '1.swf'
image[2] = '2.swf'
image[3] = '3.swf'
image[4] = '4.swf'
image[5] = '5.swf'
image[6] = '6.swf'
image[7] = '7.swf'
image[8] = '8.swf'
image[9] = '9.swf'


var ran = 60/image.length

function ranimage() {
  currentdate = new Date()
  core = currentdate.getSeconds()
  core = Math.floor(core/ran)
    return(image[core])
}

document.write("<embed src='" +ranimage()+ "' quality='high' bgcolor='#ffffff' width='550' height='400' align='middle' allowScriptAccess='sameDomain' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' />")

//-->
</script>


O problema eram as aspas dentro da TAG <embed>,  como na parte document.write esta usa aspas para imprimir o seu conteúdo quando eu colocava as aspas referentes à TAG <embed> era como se tivesse fechado a parte do document.write. Então substituí essas aspas por '

Smiley

Agora podemos configurar a array mediante o número de SWFs que tivermos:

Código:
image = new StringArray(10)
image[0] = '0.swf'
image[1] = '1.swf'
image[2] = '2.swf'
image[3] = '3.swf'
image[4] = '4.swf'
image[5] = '5.swf'
image[6] = '6.swf'
image[7] = '7.swf'
image[8] = '8.swf'
image[9] = '9.swf'


Se tivermos só 2 SWF mudamos os parâmetros da array para 2 (onde diz 10 entre parentisis) e colocamos só dois itens na array:

Código:
image = new StringArray(2)
image[0] = '0.swf'
image[1] = '1.swf'


E está a bombar Wink
Registado

TripleHCP
Aprendiz
**
Offline Offline

Mensagens: 82


Ver Perfil
« Responder #4 em: 11 de Março de 2006, 17:58:16 »

Thnks Gimbras Smiley
Registado
gimbras
Emblema de Prata
****
Offline Offline

Mensagens: 1101



Ver Perfil WWW
« Responder #5 em: 11 de Março de 2006, 18:26:37 »

Custou... mas foi.

E diverti-me.

Wink
Registado

Páginas: [1] 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.176 segundos com 19 procedimentos.