Originariamente inviato da longline
L'hitTest invece come dovrei usarlo?
Allora, premetto che in generale ho smesso di utilizzare i bottoni, usando al loro posto i movieClip, che hanno tutte le funzioni dei bottoni ed in più tutte quelle della classe MovieClip.

Quindi anche se in questo caso non sarebbe necessario, useremo solo movieClip nell'esempio [sorgente esempio]:

- Creiamo due movieClip, uno a forma di cerchio e un altro a forma di quadrato [più grande del cerchio]
- Chiamiamo ed istanziamo il cerchio come cerchio_mc ed il quadrato come quadrato_mc
- Associamo al frame principale del filmato il seguente codice:

codice:
quadrato_mc.onPress = function() {
	this.startDrag();
};
quadrato_mc.onRelease = quadrato_mc.onReleaseOutside=function () {
	this.stopDrag();
};
cerchio_mc.onRelease = function() {
	trace(this._name+" è attivo");
};
- Testiamo il filmato: vedremo che cliccando sopra il cerchio comparirà nell'output cerchio_mc è attivo. Sempre in modalità testa filmato, trasciniamo il quadrato sopra al cerchio e proviamo a cliccare nuovamente il cerchio: avremo sempre come messaggio cerchio_mc è attivo.

- Per raggiungere il nostro scopo dobbiamo aggiungere al codice alcune righe [sotto inserisco in rosso le linee da aggiungere]:

codice:
MovieClip.prototype.copri = function(mcDaCoprire) {
	this.onEnterFrame = function() {
		if (this.hitTest(mcDaCoprire)) {
			mcDaCoprire.enabled = false;
		} else {
			mcDaCoprire.enabled = true;
		}
	};
};
this.quadrato_mc.copri(cerchio_mc);
quadrato_mc.onPress = function() {
	this.startDrag();
};
quadrato_mc.onRelease = quadrato_mc.onReleaseOutside=function () {
	this.stopDrag();
};
cerchio_mc.onRelease = function() {
	trace(this._name+" è attivo");
};
E' importante che la parte in rosso venga inserita prima di tutto il codice...
Adesso testando il filmato e trascinando il quadrato sopra il cerchio, quest'ultimo deve rimanere inattivo e provando a cliccarlo non deve comparire nessun messaggio. Se spostiamo nuovamente il quadrato il cerchio torna attivo