STIC Discussion:STIC III/ex4

The educational technology and digital learning wiki
Jump to navigation Jump to search

Problème de décollage!

J'ai une scène avec un avion et une piste + un boutton qui est censé lancer une animation qui fait décoller l'avion. J'ai aussi mis un script permettant de cliquer + drag&drop pour bouger l'avion.

Le problème: Si j'appuye tout de suite sur le bouton, l'avion décolle.Mais si je clique d'abord sur l'avion: il bouge et ensuite le bouton n'envoye plus l'animation (sur le frame 2).

Avez-vous une explication?

Les fichiers sont en ligne

Baptiste Baptiste Ossipow 16:10, 23 November 2007 (MET)

Logique du motion tween

A mon avis un motion tween peut seulement marcher si l'objet à bouger reste aux endroits prévus (début et fin). Comme l'avion n'est plus là, Flash ne va plus le trouver (donc le motion tween est cassé).

Solution: dessiner un autre avion à la place (donc faire une 2ème instance). Autre solution: Le bouton remet l'avion au bon endroit, et ensuite faire un motion tween à l'intérieur du movie clip avion. - Daniel K. Schneider 17:57, 23 November 2007 (MET)




Oui, ça marche si j'anime une autre instance.

Merci.

B.

Tester si des objets se touchent

J'avoue que je n'ai pas encore commencer avec ex4, mais j'aimerais bien savoir si c'est faisable ce que je veux faire.

Dans votre example [[1]] vous faites un test appelé match. Est-ce que ce test de condition vérifie si deux objets se touchent?

function test_match(target,obj) {
	// test if the pairs match
	if (target == obj) { then_stop_movement(); }
//etc...
}

Si oui, j'essaie de faire le contraire: on peut bouger un objet, sauf s'il est bloqué par un autre objet. Possible ou compliqué?

Merci -rolf

réponse

oui en gros je fais cela, mais faut voir le code complet. Quand on lâche l'objet, il y a un "target".

function mouseUpHandler(evt:MouseEvent):void {
	// donne l'objet sur lequel on a fait un mouse up
        var obj = evt.target;
        ......
        // obj.dropTarget will give us the reference to the shape of
	// the object over which we dropped the circle.
	var target = obj.dropTarget;
        .......

Pour vous ce qu'il faut faire c'est de regarder ce qui se passe quand vous lâchez dans le "vide". Je pense qu'il y'aura quand-meme un object (genre la stage, un background etc.). Donc là faut autoriser. Pour savoir, suffit d'afficher "evt.target" et voir dans la console.

   trace(">>" + evt.type + " event target= " + evt.target + ....... );
     trace("------");