Autor Tópico: Flash (swf) no Desktop  (Lida 6358 vezes)

Offline Speed Dragon

  • Iniciado
  • *
  • Mensagens: 13
    • Ver Perfil
Flash (swf) no Desktop
« em: 30 de Dezembro de 2006, 05:11:47 »
Será que alguem sabe de algum programa para meter um SWF a dar no desktop ?

Estava a utilizar um plugin do samurize, mas reparei que não funciona a 100% devido as ligações com os ficheiros xml de update.

E o "página web no desktop do windows" também tem ainda piores problemas.

Alguem conhece alguma coisa que seja equivalente e isto, mas que não tenha esses problemas?

E já agora, com resolvo os problemas de ele não deixar conectar-se quando tento aceder só por swf a ficheiros externos, por causa da segurança ?

Offline yarcub

  • Aprendiz
  • **
  • Mensagens: 138
    • Ver Perfil
Flash (swf) no Desktop
« Responder #1 em: 30 de Dezembro de 2006, 05:53:25 »

Offline Speed Dragon

  • Iniciado
  • *
  • Mensagens: 13
    • Ver Perfil
Flash (swf) no Desktop
« Responder #2 em: 30 de Dezembro de 2006, 15:44:51 »
Outra coisa estranha é ao correr no Flash ou no Projector dá bem, se correr como num site, ele não dá correctamente, por exemplo tenho a ir buscar uns valores ao xml e ele não os vai buscar :S

Offline yarcub

  • Aprendiz
  • **
  • Mensagens: 138
    • Ver Perfil
Flash (swf) no Desktop
« Responder #3 em: 30 de Dezembro de 2006, 16:49:43 »
Este parece melhor, pelo menos é da {mdm} tal como o Zinc.

Citação de: "Speed Dragon"
MensagemColocada: Sáb Dez 30, 2006 14:44    Assunto:
Outra coisa estranha é ao correr no Flash ou no Projector dá bem, se correr como num site, ele não dá correctamente, por exemplo tenho a ir buscar uns valores ao xml e ele não os vai buscar :S


Será por estares a tentar aceder ao conteudo XML antes de ter a certeza que ele fez a leitura completa?
Coloca o código.

Offline Speed Dragon

  • Iniciado
  • *
  • Mensagens: 13
    • Ver Perfil
Flash (swf) no Desktop
« Responder #4 em: 30 de Dezembro de 2006, 17:05:42 »
O código que estou a usar é +/- este ...

Citar
_global.hcp_redcard = new XML();
hcp_redcard.ignoreWhite = true;
hcp_redcard.onLoad = function(success) {
   if (hcp_redcard.loaded) {
      task_number = hcp_redcard.firstChild.childNodes;
      redcard = "(" + task_number + ")";
   }
}
hcp_redcard.load("http://speeddragon.no-ip.info/flashadmin/redcards.php");


O problema que me dá no Samurize que era o que eu pretendia usar é que não faz o update correctamente, parece que guarda dos dados, e depois não os volta a ler.

Por incrivel que parece ouve uma "coisa" que fiz num que leu, mas ao executar um leitor de rss feed que criei ele lê sempre os valores antigos e não os novos.

EDIT: Outro sintoma que notei é que não consegue ler ao correr pelo browser valores de sites externos (por exemplo o que tinha em cima) só consegue ler por exemplo http://192.168.1.2/ ...

Penso que assim irá resolver o problema do browser, não sei se irá resolver o problema do samurize. (Como tenho RSS Feed não posso estar sempre a usar um ficheiro interno para ir buscar a rss, já que vai buscar os dados a uma base de dados, por isso como dou permissão ou como faço para deixar ir buscar os dados ?)

Offline yarcub

  • Aprendiz
  • **
  • Mensagens: 138
    • Ver Perfil
Flash (swf) no Desktop
« Responder #5 em: 30 de Dezembro de 2006, 17:38:45 »
Pelo que percebi, queres fazer um RSS Reader para teres no Desktop. Mas ao fazeres update mostra-te smp o mm resultado do primeiro, mm que o conteúdo do XML seja outro. É  isto?

Esse código parece funcionar bem, mas em vez de testares a propriedade loaded, usa logo if(success).
Quando carregas novamente o XML, usas só o método load() ou crias novamente um objecto XML?


Citação de: "Speed Dragon"
EDIT: Outro sintoma que notei é que não consegue ler ao correr pelo browser valores de sites externos (por exemplo o que tinha em cima) só consegue ler por exemplo http://192.168.1.2/ ...

Isso tem a ver com a Security Sandbox introduzida no player7, podes ler sobre isso aqui.

Offline Speed Dragon

  • Iniciado
  • *
  • Mensagens: 13
    • Ver Perfil
Flash (swf) no Desktop
« Responder #6 em: 30 de Dezembro de 2006, 18:57:00 »
yarcub, obrigado pela ajuda.

Uso simplesmente o load("ficheiro") para carregar de novo.

Penso que o sintoma que te disse será defeito do plugin do samurize, já uqe testei com o browser e dá bem.

Quanto ao problema de segurança, não tenho que só acrescentar ...

Citar
System.security.allowDomain("http://yourFlashDomain.com")
?

Offline yarcub

  • Aprendiz
  • **
  • Mensagens: 138
    • Ver Perfil
Flash (swf) no Desktop
« Responder #7 em: 31 de Dezembro de 2006, 03:25:08 »
Citar
yarcub, obrigado pela ajuda.

Uso simplesmente o load("ficheiro") para carregar de novo.

Penso que o sintoma que te disse será defeito do plugin do samurize, já uqe testei com o browser e dá bem.

É possível que sim. Mas como última tentativa tenta criar novamente o Objecto XML por cima do outro quando fazes o reload.

Citar

Quanto ao problema de segurança, não tenho que só acrescentar ...
Citação:
System.security.allowDomain("http://yourFlashDomain.com")
?

Não tenho a certeza, mas acho que isso é para a seguinte situação:
Tens 1 swf no domínio A e queres carregar para dentro dele 1 swf do domínio B.
Aí precisas colocar esse código no swf B, para que o A consiga aceder às variáveis do B.

Offline Speed Dragon

  • Iniciado
  • *
  • Mensagens: 13
    • Ver Perfil
Flash (swf) no Desktop
« Responder #8 em: 31 de Dezembro de 2006, 20:26:08 »
Então podes-me dizer o que devo fazer para conseguir comunicar com o "exterior" ?

É que não consegui perceber o que tinha que fazer.

Desde já, Feliz Ano Novo ;)

Offline gimbras

  • Emblema de Prata
  • ****
  • Mensagens: 1105
    • Ver Perfil
    • NoFuturo.com
Flash (swf) no Desktop
« Responder #9 em: 2 de Janeiro de 2007, 12:25:07 »
Código: [Seleccione]
red_card= new XML();
red_card.ignoreWhite = true;
red_card.onLoad = LoadXML;
red_card.load('http://localhost/red_card.php');


Eu costumo usar este código.

A função LoadXML aparece antes deste pedaço de código aparecer. Ou seja, o Flash tem de "conhecer" a função LoadXML, antes de chegar a esta parte do código. Quando lá chegar já saber o que tem de fazer.

Para refrescar o XML podes simplificar as coisas. Crias uma segunda frame e fazes:
Código: [Seleccione]
gotoAndStop(2);

Experimenta aí a ver se dá. Não sei se era mesmo essa a tua dúvida.

Quanto ao software para correr o SWF no desktop, tmb ia dizer aquela opção do Windows "Página HTML", mas como dizes que dá muitos problemas, já não digo nada :D

Cumps.

Offline alftuga

  • Aprendiz
  • **
  • Mensagens: 202
    • Ver Perfil
    • http://www.alftuga.net
Flash (swf) no Desktop
« Responder #10 em: 2 de Janeiro de 2007, 13:34:25 »
a questão do xml antigo pode ser uma questão de cache tenta uma coisa destas...

myXML.load("tabs.xml?cachebuster=" + new Date().getTime());

se não entendi as questões tem pena de min isto é duro arrancar a semana... :)

Offline alftuga

  • Aprendiz
  • **
  • Mensagens: 202
    • Ver Perfil
    • http://www.alftuga.net
Flash (swf) no Desktop
« Responder #11 em: 2 de Janeiro de 2007, 13:52:02 »
outra coisa quem lida com xml no flash deveria se interesar com uma coisa que se chama XPathAPI.

Offline yarcub

  • Aprendiz
  • **
  • Mensagens: 138
    • Ver Perfil
Flash (swf) no Desktop
« Responder #12 em: 2 de Janeiro de 2007, 18:16:51 »
Ñ tinha a certeza como funciona a Security Sandbox, mas é +/- isto.

Quando apenas queres carregar swf's de outro domínio (ex: dominioB.pt) e aceder a variáveis/funções/etc dentro dele, podes colocar no swf a carregar o seguinte código (de um subdomínio para outro tb é preciso):

Código: [Seleccione]
System.security.allowDomain("http://dominioA.pt");
O inconveniente é que apenas podes aceder a swf's e se quiseres acrescentar domínios, tens de compilar novamente.

A melhor opção, é criar um ficheiro de cross-domain policy na  raiz do domínio/subdomínio de onde queres carregar 1 ficheiro.

Código: [Seleccione]

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <allow-access-from domain="dominioA.pt" />
</cross-domain-policy>

Salvas este ficheiro com o nome crossdomain.xml na raíz do domínioB.


O funcionamento do flashplayer é:
1)Verifica se existe um cross-domain policy file.
2)Se ñ encontrou o anterior, procura dentro do swf a carregar pelo 1º código que postei.
3)Por fim, se ñ encontrar nada o acesso é negado.

Se ñ conseguires ir lá pelo que escrevi, tenta ver o link que postei do site da MM.

Offline Speed Dragon

  • Iniciado
  • *
  • Mensagens: 13
    • Ver Perfil
Flash (swf) no Desktop
« Responder #13 em: 2 de Janeiro de 2007, 23:48:15 »
Eu testei o allowDomain e não deu.

Queria que o swf aceita-se tudo, porque para fazer um RSS Feed Reader em Flash não dá para por os ficheiros nos servidores de rss feed.

Offline yarcub

  • Aprendiz
  • **
  • Mensagens: 138
    • Ver Perfil
Flash (swf) no Desktop
« Responder #14 em: 3 de Janeiro de 2007, 01:05:21 »
Citar
Eu testei o allowDomain e não deu.

Isso é para colocar no swf que esteja em outro domínio que não o teu swf.
Como o que tu queres é carregar um xml, o allowDomain não te serve de nada.

Citar
Queria que o swf aceita-se tudo, porque para fazer um RSS Feed Reader em Flash não dá para por os ficheiros nos servidores de rss feed.

Segundo um livro que tenho aqui, a única solução para o teu caso é usar um server-side script para fazer o proxy do ficheiro que queres aceder.

1)Para teres esse RSS Feed Reader num site, basta criar um script php que vá buscar a feed e te faça o display dele. Ao fazeres o load do script php o Flash Player trata como um ficheiro local e contorna a questão da security policy.

2)Se é para teres no teu desktop, crias o script php num alojamento teu, precisas por o crossdomain.xml nesse alojamento.

Depois diz o resultado, assim ficamos tds esclarecidos quanto ao funcionamento disto.

PS: Já agora, quanto à questão de colocar um swf como Desktop.
Chegaste a ver algum dos programas que postei, ou arranjas-te outra solução?

 




Roleta das Anedotas - Abre noutra janela