Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS1/AS2
AS1/AS2 Questions relatives à la programmation ActionScript 1 et 2 (Cours AS2)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/04/2008, 01h40   #1
Invité régulier
 
Inscription : novembre 2007
Messages : 59
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 59
Points : 9
Points : 9
Par défaut Coder un puzzle proprement

Bonsoir à tous,

Je suis actuellement en train de coder un puzzle en flash, je précise que mon niveau est plutôt basique.

Mon problème est de coder ce puzzle intelligemment. Au début je me suis mis à mettre le code suivant pour chaque pièce :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
onClipEvent(mouseDown)
{
	if(this.hitTest(_root._xmouse, _root._ymouse, false))
	{
		abs = this._x ;
		ordo = this._y ;
		startDrag("",true) ;
		this._alpha = 50 ;
	}
}
 
onClipEvent(mouseUp)
{
	this._alpha = 100 ;
	stopDrag() ;
 
	if(_root["zone_untel"].hitTest(this))
	{
		this._x = _root["zone_untel"]._x ;
		this._y = _root["zone_untel"]._y ;
	}
	else
	{
		this._x = abs ;
		this._y = ordo ;
	}
}
Cette méthode ne me semble pas la bonne pour différentes raisons et plus particulièrement, j'ai ouï dire qu'il était préférable d'utiliser un clip "Action" pour centraliser le code. Or je ne vois pas comment centraliser les opérations de drag and drop et les hitTest.

Merci d'avance pour vos suggestions.
M@t67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2008, 12h56   #2
Rédacteur/Modérateur
 
Avatar de beekeep
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 1 606
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2006
Messages : 1 606
Points : 2 233
Points : 2 233
Salut,
Citation:
Envoyé par M@t67
j'ai ouï dire qu'il était préférable d'utiliser un clip "Action" pour centraliser le code.
en fait il est préférable de placer tout le code d'un clip dans un calque dédié.

dans ton cas, tu peux remplacer le code présents sut tout tes clips pièces par le code suivant dans un calque spécial :
(fonctionne si tes clips sont nommés piece1, piece2 etc .. )

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
var i:Number = 1;
while(this["piece"+i] != undefined)
{
    var mcTmp:MovieClip = this["piece"+i];
    mcTmp.onMouseDown = function()
    {
        if(this.hitTest(_root._xmouse, _root._ymouse, false))
        {
            abs = this._x ;
            ordo = this._y ;
            startDrag("",true) ;
            this._alpha = 50 ;
        }
    };
    mcTmp.onMouseUp = function()
    {
        this._alpha = 100 ;
        stopDrag() ;
 
        if(_root["zone_untel"].hitTest(this))
        {
            this._x = _root["zone_untel"]._x ;
            this._y = _root["zone_untel"]._y ;
        }
        else
        {
            this._x = abs ;
            this._y = ordo ;
        }
    };
    i++;
}
beekeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h54.


 
 
 
 
Partenaires

Hébergement Web