Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
Filipe_O

[AS2] Carregar html em caixa de texto dinâmica

Recommended Posts

Filipe_O

Boas pessoal!

Gostaria de perguntar como posso carregar um elemento html, dentro de uma caixa de texto dinâmica.

Trabalho com AS 2.

Fiquem bem e obrigado

Share this post


Link to post
Share on other sites
coxosclassic

boas,

basta definires a tua caixa de texto dinamica como html, por exemplo:

this.createTextField("tf",1,0,0,500,200);
tf.html = true;
tf.htmlText = "<b> bold stuff </b>, <i> italic stuff </i>, etc...";

espero que ajude,

CC


Cumps,

cc

Share this post


Link to post
Share on other sites
Filipe_O

Boas!

Já estou mais perto!

Duas coisa:

O meu objectivo era carregar uma pagina shtml (digo para teres a noção do que pretendo) dentro da caixa de texto dinâmica.

Ora, quando a caixa aparecer, lá dentro iram aparecer as noticias....

A pergunta é:

Como faço para que o conteúdo simplesmente apareça, e não apenas ao:

clicar na caixa (on realese);

Passar com o rato (on RollOver)

Passar com o rato, fora (on RollOut), etc etc...

Ou seja...não haver uma condição especifica para aparecer.

A outra pergunta é:

Como é que carrego a pagina?

Fiquem bem e muito obrigado

Share this post


Link to post
Share on other sites
coxosclassic

boas,

pelo que percebi, pretendes colocar uma pagina inteira shtml numa caixa de texo dinamica.

nao tenho bem a certeza, mas acho que o suporte que a caixa de textp suporta será so texto html, nao sei se da para colocares o codigo total de uma pagina shtml. pelo menos em as2

mas se o que tu pretendes é uma cena básica como o exemplo que mostraste (so links) podes perfeitamente fazer isso no flash.

se precisares de ajuda avisa.

cumps,

CC


Cumps,

cc

Share this post


Link to post
Share on other sites
Filipe_O

Sim, o que pretendo é apenas mostrar os links que aparecem na pagina.

Ajudas?

Fiquem bem

Share this post


Link to post
Share on other sites
coxosclassic

boas,

estive a ver o teu problema e fiz um "pseudo" componente que faz aquilo que pretendes. A unica maneira que eu consegui para ter acesso aos links que estavam na pagina de html, foi criar um ficheiro de xml (links.xml), pois nao faco a minima ideia de como "extrair" essa informação da pagina de html. Se quiseres adicionar ou retirar uma notícia basta acrescentares ou removeres os "nodes" de xml.

Se por acaso essa pagina tiver a receber um "feed" de noticias por xml, diz-me que eu mudo o codigo de modo a receber esse "feed".

basta fazeres copy/paste do MovieClip "linkMenu" para o teu .fla e posiciona-lo onde quiseres. tem em atencao que o ficheiro de xml "links.xml" tem de estar sempre na mesma pasta do(s) teu(s) swf, pois é apartir desse ficheiro que o componente se constroi.

o código está totalmente comentado por isso nao deve ser muito dificol perceberes o que faz.

espero que ajude:

http://sites.google.com/site/brunoperry/linkMenu.zip?attredirects=0&d=11

cumps,

CC


Cumps,

cc

Share this post


Link to post
Share on other sites
Filipe_O

Muito obrigado pelo teu trabalho (aquela programação toda....), mas como deves imaginar, não estaria certo fazer copy/paste e não tentar entender.

Duvidas:

O documento XML não actualiza os links de acordo com a pagina html, correcto? (neste casso seria necessário, pois noticias novas saem diariamente)

Na barra á direita deste site ("Ultimas da agencia ecclesia"), está como queria o espaço das noticias.

Como poderia fazer para que as notiçias (programação que deste) apareçesse, sem nenhum tipo de condição/comportamento (on (realese); on (rollOver); on (rollOut); etc etc)?

De facto, as respostas as minhas pesquisas têm sido muito mais em relação a importar documentos XML do que html, mas dados estes problemas achas que me devo virar para html, ou o que acabei de referir, tem solução (pratica)?

Fica bem e obrigado por toda a ajuda

Share this post


Link to post
Share on other sites
coxosclassic

boas,

O documento XML nao se actualiza com a pagina HTML... tens ideia de como é que a pagina html recebe as noticias? se tb for por xml, bastaria por a carregar esse XML.

o link que me mandaste vai dar a uma pagina com o googlemap... nao sei se é isso que queres... :thumbsup: se puderes envia de novo para se poder ver bem o que pretendes

queres dizer que em vez de aparecerem links para as noticias, queres que aparecam logo as noticias?

Isso pode-se fazer, mas haverá sempre o problema do xml.... se conseguires arranjar um "feed" de xml com essas noticas, podes por esses conteudos a aparecer, caso contrario, teras de ser sempre tu a actualizar o xml... (o que nao da jeito nenhum..)

infelizmente não percebo muito de html para te ajudar na decisao de continuares em flash ou tentares ir por html... mas pelo que percebi, estaras sempre dependente de um " feed" de noticas (seja por xml ou por outra coisa qualquer)

cumps,

CC


Cumps,

cc

Share this post


Link to post
Share on other sites
Filipe_O

boas,

O documento XML nao se actualiza com a pagina HTML... tens ideia de como é que a pagina html recebe as noticias? se tb for por xml, bastaria por a carregar esse XML.

Não, não sei.A ideia era não ter nenhuma pagina a servir de intermédio, mas sim importar directamente, percebes?

o link que me mandaste vai dar a uma pagina com o googlemap... nao sei se é isso que queres... :) se puderes envia de novo para se poder ver bem o que pretendes

Epah desculpa lá...Vê aqui...Na barra á direita está uma caixa pequena com o titulo "Ultimas da agencia ecclesia"...O que gostava de fazer era tipo isso (dai querer que ocupasse uma caixa de texto,e não o palco todo)

queres dizer que em vez de aparecerem links para as noticias, queres que aparecam logo as noticias?

Isso pode-se fazer, mas haverá sempre o problema do xml.... se conseguires arranjar um "feed" de xml com essas noticas, podes por esses conteudos a aparecer, caso contrario, teras de ser sempre tu a actualizar o xml... (o que nao da jeito nenhum..)

Não...Só não podia era actualizar o XML porque as saem noticias novas no html diariamente.

infelizmente não percebo muito de html para te ajudar na decisao de continuares em flash ou tentares ir por html... mas pelo que percebi, estaras sempre dependente de um " feed" de noticas (seja por xml ou por outra coisa qualquer)

Por flash eu faço sempre....a indecisão é entre tentar importar directamente do html, ou usar um XML como ponto intermédio (algo que parece ser mais fácil).

Um é mais facil, mas o outro é mais directo

Fiquem bem e obrigado

Share this post


Link to post
Share on other sites
coxosclassic

ok,

consegui ver o link e ja percebi +- o que pretendes.

O flash nao importa directamente uma pagina HTML, mas pode-se dar sempre a volta ao assunto :)

básicamente é possivel "hackar" uma pagina html para flash para se fazer um simples menu como o que mostraste.

Seria bem mais fácil conseguir isso havendo um XML, mas visto que isso não é possivel, pode-se olhar para o problema de uma outra perspectiva...

Mas antes de aprofundar o assunto preciso que me esclareças uma dúvida:

Nao consigo perceber quando te referes:

Como poderia fazer para que as notiçias (programação que deste) apareçesse, sem nenhum tipo de condição/comportamento (on (realese); on (rollOver); on (rollOut); etc etc)?

Pelo exemplo que me deste, tem de haver sempre comportamentos onRelease(para entrares nos links), rollOver(para parar os links) e rollOut(para os links continuarem a "andar")... Ou a tua ideia será só apenas mostrar os titulos das noticias sem qualquer tipo de links?

se não era isto que querias dizer, podes ser um pouco mais especifico em relação a isso?

cumps,

CC


Cumps,

cc

Share this post


Link to post
Share on other sites
Filipe_O

O flash nao importa directamente uma pagina HTML, mas pode-se dar sempre a volta ao assunto :)

básicamente é possivel "hackar" uma pagina html para flash para se fazer um simples menu como o que mostraste.

Seria bem mais fácil conseguir isso havendo um XML, mas visto que isso não é possivel, pode-se olhar para o problema de uma outra perspectiva...

Se colar um "iframe" no Flash, resulta?Podia ser outra opção.

Mas antes de aprofundar o assunto preciso que me esclareças uma dúvida:

Nao consigo perceber quando te referes:

Pelo exemplo que me deste, tem de haver sempre comportamentos onRelease(para entrares nos links), rollOver(para parar os links) e rollOut(para os links continuarem a "andar")... Ou a tua ideia será só apenas mostrar os titulos das noticias sem qualquer tipo de links?

se não era isto que querias dizer, podes ser um pouco mais especifico em relação a isso?

Esquece isso (tens razão...tem sempre de haver comportamentos).

Então qual seria a outra perspectiva do problema?

Fiquem bem

Share this post


Link to post
Share on other sites
coxosclassic

Boas,

a ideia seria então forçar o flash a fazer load do html como se fosse um xml, tipo:

var fakeXML:XML = new XML();

fakeXML.onData = function( htmlStr:String ):Void 
{
    if( htmlStr == undefined )
   {
        this.onLoad( false );
    } 
    else
    {
        this.onLoad( true, htmlStr );
    }
};

é óbvio que não iria encontrar nenhum documento de xml válido, mas podemos ficar com a string... (htmlStr).

Na função onLoad:

fakeXML.onLoad = function( success:Boolean, htmlStr:String ):Void 
{
    if(!success)
   {
        // erro no ficheiro xml
    } 
    else
   {
        var hackedHTML:String = htmlStr;
        trace( hackedHTML ) //dá-nos a pagina html mas em tipo String
    }
};

fakeXML.load( "http://www.agencia.ecclesia.pt/ultimas.shtml" );

Apartir daqui, faz-se um parse da string hackedHTML para se sacar os links e os titulos das noticias (dá algum trabalho), depois seria so construir o "menu" aproveitando o codigo que ja existe.

assim que tiver tempo, elaboro um pouco a ideia. Mas através deste modo podes ir tentando fazer algo.

se tiveres dúvidas avisa

cumps,

CC


Cumps,

cc

Share this post


Link to post
Share on other sites
coxosclassic

boas,

fiz um exemplo um bocado à pressa:

http://sites.google.com/site/brunoperry/linkMenu2.7z?attredirects=0&d=1

julgo que esteja 100% funcional (nao testei a fundo) mas básicamente faz o pretendido.

podes tambem usar as constantes que estao no codigo para mudar as propriedades (tamanho, radius dos cantos, cor, etc..) do pseudo compoennte

o uso de PHP é uma alternativa bastante viável, mas por ai nao te posso ajudar, pois nao estou muito por dentro do assunto...

Mas visto que em flash é possivel (talvez usnado um pouco mais de codigo), não ficas dependende de scripts "server-side"... e até dá um certo "gozo" fazer tudo em actionScript.

como fiz o codigo um bocado á pressa, alguns comentarios podem nao ser muito descritivos, mas se tiveres dúvidas diz.

cumps,

CC

:)


Cumps,

cc

Share this post


Link to post
Share on other sites
Filipe_O

Obrigado pelas ajudas!Os comentários estão perfeitamente perceptiveis, e são essenciais pois não percebo de Actionscript (nem quero que programação seja a minha área...porém, á coisas úteis a saber 🤔)

//carrega o html para uma string
fakeXML.load("http://www.agencia.ecclesia.pt/ultimas.shtml");

Ou seja, carrega as noticias directamente do html, certo?

É mesmo o que procuro!

Fiquem bem e obrigado

Share this post


Link to post
Share on other sites
coxosclassic

boas,

exacto, carrega as noticias directamente do html (como tipo string), faz-se o parse para xml, e a apartir daí constroi-se o menu de acordo com o exemplo que mostraste.

cumps,

CC


Cumps,

cc

Share this post


Link to post
Share on other sites
Filipe_O

Muito obrigado pela ajuda!

Não sei se me podes ajudar, mas:

Quando testo a minha animação, a ligação funciona e por conseguinte as noticias aparecem.

Aconteçe que quando no site, fica sempre em "a carregar", e quando executo o .swf, dá-me este erro..

Não sei se me sabes ajudar, visto o mais provável é a programação não ter nada a ver com o problema, mas como já me conseguis-te ajudar tanta vez ( :D )

Aqui fica a pergunta..

Fiquem bem e obrigado

Share this post


Link to post
Share on other sites
coxosclassic

boas,

pela descrição do problema, julgo que possa tratar de problemas de segurança. Visto que estás a carregar um html externo, o flash pode estar a intrepertar o problema como se trata-se de um link "malicioso", logo estar a aparecer esse aviso e o programa nao passar da fase "A Carregar..."

neste momento nao estou perto (nem vou estar) do meu pc, para poder ter certezas, mas assim que tiver, tento resolver o problema (la mais para o fim da semana).

cumps,

CC


Cumps,

cc

Share this post


Link to post
Share on other sites
coxosclassic

boas,

consegui dar entao uma olhada no problema, e cheguei à conclusao de que se trata mesmo de uma questao de seguranca. quando esse "erro" acontecer, clica no botao "Settings..." e na janela que se abre no teu browser, no componente "Macromedia Flash Player Settings Manager", clica no dropdown menu e escolhe a opção "Add location..."

escreve ai o caminho onde tens o teu file .swf (ex: c:\Desktop\App\oMeuSwf.swf) e clica no botao "Confirm". de seguida tenta abrir de novo o swf e verás que ja nao da esse erro.

Julgo que quando puseres o teu site online este erro nao ocorra, mas poderias tentar por isso online e ver se da erro ou nao...

cumps,

CC

::EDIT:: segue este link para uma explicação mais profunda do problema:

http://kb2.adobe.com/cps/135/13530cdd.html


Cumps,

cc

Share this post


Link to post
Share on other sites
Filipe_O

online não dá nenhum erro, mas nunca carrega as noticias...fica sempre em "a carregar".

Lol, a pagina "Settings" do menu de erro, não está disponível ...

Vou ler com atenção o link que me mandas-te

Obrigado por toda a ajuda!

Share this post


Link to post
Share on other sites
Filipe_O

Consegui resolver a situação da comunicação do .swf com a internet, mas on, ainda fica sempre a aparecer "a carregar".

Obrigado por toda a ajuda

Share this post


Link to post
Share on other sites
coxosclassic

Boas,

Tentei correr o swf online, e tambem tive o mesmo problema... Julgo que possa ter a haver com a questão da segurança....

Procurei um pouco acerca do assunto, mas nao consegui encontrar nada de relevante. :D

Se entretanto souber como se possa dar a volta ao problema, aviso por aqui.

uma outra solução era a que o Scorpion_Blood mencionou uns posts mais atrás, fazer uso de um script PHP. Bastaria receberes um XML e usar o resto do codigo.

mas isso infelizmente nao te posso ajudar pois nao estou muito por dentro...

cumps,

CC


Cumps,

cc

Share this post


Link to post
Share on other sites
Filipe_O

Relativamente á segurança, "permito" o .swf aqui.

Quanto ao debbuger, o erro que deu foi de segurança...depois de permitir, já funcionava (apenas no meu pc)...

Realmente, não sei...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.