Jump to content


Photo

'on (release)'


  • Faça o login para participar
7 replies to this topic

#1 tng

tng

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Masculino

Posted 12/09/2008, 09:27

bom dia galera, meu problema é o seguinte;

criei um objeto no flash, transformei-o em botão, aí coloco a seguinte ação nele:

on (release) {
getURL("http://www.uol.com.br" ,"_self ");
}

mas quando eu testo o movie, aparece a seguinte mensagem;

location
scene 1, layer 'bitmap12', frame 2, line 1

description
1087: syntax error: extra characters found after end program.

source
on (release) {


por favor, alguém poderia me ajudar??


obrigado!

Edição feita por: Kadu DG, 15/09/2008, 10:10.
Título do Tópico, fora das regras.


#2 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 12/09/2008, 14:49

bitmap12? Que objeto é esse? Você colocou a ação no segundo frame de um bitmap?
att,
Muller Dias
ex-administrador Fórum WMO

#3 tng

tng

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Masculino

Posted 12/09/2008, 14:53

não não

bitmap12 é o nome da layer mesmo... tá com esse nome pq é uma imagem importada...

#4 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 12/09/2008, 17:53

Nossa, é mesmo. :lol:

Você colocou a ação em um frame pelo o que parece. Em frames você não precisa colocar on (release), coloque assim:

getURL("http://www.uol.com.br" ,"_self ");

(ok2)
att,
Muller Dias
ex-administrador Fórum WMO

#5 Pedropauloalmeida

Pedropauloalmeida

    Fale ao motorista somente o indispensável

  • Usuários
  • 1376 posts
  • Sexo:Masculino
  • Localidade:Santo André SP

Posted 13/09/2008, 18:17

Para usar a sintaxe de ActionScript 1.0 (que você nunca deveria usar....)
Clique no objeto e escreva no painel de actons:

on (release) {
	 getURL("http://www.algumsite.com.br", "_blank");
}

Para usar a sintaxe 2.0, que você deveria parar de usar:
Clique no objeto, no painel propriedades, dê um nome de instância de "botao_btn". Clique em um FRAME da timeline e escreva no painel de actions:
this.botao_btn.onRelease = function():Void {
	 getURL("http://www.algumsite.com.br", "_blank");
}

Para usar a sintaxe 3.0, que você deve usar:
Clique no objeto, no painel propriedades dê a ele um nome de instância de "botao_btn". Clique em um FRAME da timeline e escreva no painal de actions:
import flash.net.navigateToURL;
import flash.net.URLRequest;
import flash.display.SimpleButton;

this.botao_btn.addEventListener(MouseEvent.CLICK, abrirLink);
function abrirLink(evt:MouseEvent):void {
	 navigateToURL(new URLRequest("http://www.algumsite.com.br"), "_blank");
}

Edição feita por: Pedropauloalmeida, 13/09/2008, 18:17.


#6 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 14/09/2008, 22:04

Fiquei na dúvida se ele queria colocar a action em um botão ou no frame, enfim, bela explicação PP. ^_^

PP, por que você usou o "this"? Funciona também sem ele, não? Pode dar algum problema? :ponder:
att,
Muller Dias
ex-administrador Fórum WMO

#7 tng

tng

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Masculino

Posted 15/09/2008, 11:24

valeu PP e semponto, agradeço a atenção.

usei a sintaxe de ActionScript 3.0, funcionou certinho!

obrigado mesmo!

Edição feita por: tng, 15/09/2008, 13:55.


#8 Pedropauloalmeida

Pedropauloalmeida

    Fale ao motorista somente o indispensável

  • Usuários
  • 1376 posts
  • Sexo:Masculino
  • Localidade:Santo André SP

Posted 15/09/2008, 12:48

Então, s/.

Desde que eu comecei a programar em flash, principalmente quando comecei a usar classes em AS2, eu mantive a palavra chave "this".
Isso é uma das "boas práticas" da linguagem pois quando você tem uma classe e faz this.objeto ou this.propriedade você sabe que se refere a uma propriedade declarada da classe ou de sua superclasse, e não de uma variável criada dentro da função em tempo de execução.

Pode parecer uma "bobagem" e já ouvi muita gente dizer que "polui" o código. Cada um tem uma visão sobre isso. Mas eu já vi cara declarar variável com nome de propriedade da super classe e depois ficar caçando erro sem saber porque. Hoje com programas como FlashDevelop um erro desses é bem mais difícil de acontecer, mas eu sei, lendo o código, que aquele target pertence ao escopo do código e não a uma variável criada em tempo de execução.

Outra coisa que pode ocorrer é o seguinte (mais em AS2, já que em AS3 o sistema de objetos gráficos mudou para o DisplayList):

Sujeito faz um attach de um movie dentro de outro em um looping:
for (var i:Number = 0; i < 10; i++) {
	 // aqui ele atacha:
	this.menu_mc.attachMovie("linkageBt_mc", "bt" + 0, i);
	// aqui eu crio uma varável para referenciar o botão que acabei de criar:
   var temp_mc:MovieClip = this.menu_mc["bt" + 0];
}

Veja agora que eu sei que "menu_mc" pertence ao escopo de minha classe. Já temp_mc é uma variável que é um "atalho" para o código em vez de ficar escrevendo this.menu_mc["bt" + i]._x = 50 eu posso fazer só temp_mc._x - 50.
Mas se eu fizer algo como this.temp_mc o compilador não vai aceitar, pois não há temp_mc no escopo de minha classe.

É isso.
Abraços.

pp

Edição feita por: Pedropauloalmeida, 15/09/2008, 12:48.





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq