Jump to content

Actionscript 2.0


bjorkzita
 Share

Recommended Posts

Boas!

Preciso de ajuda para 1 codigo...

Tenho um jogo DragAndDrop e preciso que após 3 targets serem atingidos vá diretamente para a frame seguinte.

Penso que uma condição if resolve o assunto, se os 3 objects estiverem inativos vai para a frame seguinte, mas nao estou a perceber onde devo por esta condição no as2.0

Link to comment
Share on other sites

//amarelop, magentap e azulp são os mc que são arrastados. Este código está no botão que não queria que existisse!

on(press)
{ if((_root.amarelop.enabled == false)&&(_root.magentap.enabled==false)&&(_root.azulp.enabled==false))
{ gotoAndStop(15);}
else
{ gotoAndStop(16);}}

//Codigo do mc amarelop para parar num dos targets

on (press) {startDrag(this);}
on (release){stopDrag();
if(this.hitTest(_root.targetp1)){
	this._x = _root.targetp1._x;
	this._y = _root.targetp1._y;
	this.enabled = false;
}
else {if(this.hitTest(_root.targetp2)){
	this._x = _root.targetp2._x;
	this._y = _root.targetp2._y;
	this.enabled = false;
}else{
if(this.hitTest(_root.targetp3)){
	this._x = _root.targetp3._x;
	this._y = _root.targetp3._y;
	this.enabled = false;
}

else
//volta à posição inicial
{this._x=421,35
this._y=337,60}
}}}
Link to comment
Share on other sites

Tambem tenho um jogo em q existe apenas 1 target e um objeto que pode ficar lá! pus um nextFrame dentro do if no stopDrag... E nada... :wallbash:

No jogo dos 3 targets nem sei onde posso por, pq para por na propria frame preciso de um event e não sei qual devo usar...  ?

Link to comment
Share on other sites

boas,

experiemtna trocar o teu evento on(press) para:

on(press) {
    if((_root.amarelop.enabled == false)&&(_root.magentap.enabled==false)&&(_root.azulp.enabled==false)) {
      _root.gotoAndStop(15);
   }
   else {
      _root.gotoAndStop(16);
   }
}

Cumps,

cc

Link to comment
Share on other sites

O código que mandei funciona bem, o problema, é que eu nao queria que o botão que tem este código existisse...

queria que, caso os botoes amarelop, magentap e azulp ficassem desativos (enabled=false)o utilizador automaticamente saltasse para a frame (15), sem necessidade de carregar num botao que esta ali unicamente para isso...

Dá para fazer isso?

Desde já obrigada por todo o interesse e pelas respostas...

Link to comment
Share on other sites

😄

ok! so agora percebi...

Porque nao crias uma funcao na _root tipo:

function checkTargets():Void {

    if( !amarelop.enabled.enabled && !magentap.enabled && azulp.enabled) {
        
        gotoAndStop(15);
    }
    else {
        gotoAndStop(16);
    }
}

e depois para cada um dos botoes( amarelo, magneta, etc) na sua funcao on(Release):

on (release) {
    stopDrag();

    if(this.hitTest(_root.targetp1)) {
        this._x = _root.targetp1._x;
        this._y = _root.targetp1._y;
        this.enabled = false;
    }
    else {
        if(this.hitTest(_root.targetp2)) {
            this._x = _root.targetp2._x;
            this._y = _root.targetp2._y;
            this.enabled = false;

        } 
        else {

            if(this.hitTest(_root.targetp3)) {

               this._x = _root.targetp3._x;
               this._y = _root.targetp3._y;
               this.enabled = false;
            }
            else {
                this._x=421,35;
                this._y=337,60;
           }
       }
   }
    _root.checkTargets();
}

espero que ajude,

cumps,

cc

Cumps,

cc

Link to comment
Share on other sites

Obrigada! Ainda sou novata em flash... e nem conhecia essa função:D

Só tenho mais uma dúvida... _root é na layer onde estão as ações? Eu ainda nem percebi o que é a _root... é que eu tentei por o codigo numa layer de ações e nada... :down:

Link to comment
Share on other sites

A _root é o palco principal do flash basicamente.

Imagina que tens o seguinte documento de .fla:

tut01.jpg

Agora imagina que dentro do MovieClip_A (na 1ª frame) tens o seguinte código:

this.onRelease = function() {

_root.MovieClip_B._x += 2;
}

O que irá acontecer é que cada vez que clicas no MovieClip_A, o MovieClip_B irá mover-se para a direita 2px (_root.MovieClip_B._x += 2;)

Não terias outra forma de aceder ao MovieClip_B através do MovieClip_A, a não ser indicares onde é que ele está. Neste caso está na _root:

_root.MovieClip_B

Colocar o codigo na layer ações é só uma questão de ser mais fácil e prático, mas podes colocar o codigo em qq layer ou frame (desde que faca sentido claro).

Podes sacar este exemplo, e veres como esta feito:

http://www.brunoperry.net/stuff/as3/as2RootTutorial/

duvidas, avisa!

cc

Cumps,

cc

Link to comment
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
 Share

×
×
  • Create New...

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.