- presupposto il fatto che sappiamo quanti e quali movieclip siano presenti nel nostro stage, creiamo un array che ne contenga i nomi
- ora abbiamo bisogno di un "oggetto ascoltatore per gli eventi" e gli assegnamo le azioni che dovrebbero funzionare in determinati "momenti"
- oltre tutto gli assegnamo delle funzioni in modo da poterle richiamare direttamente sull'object con "this" (la creazione ed eliminazione del clip che ci farà da "selettore", ad esempio)
- creiamo una ulteriore funzione che gestisca l'inserimento o l'eliminazione degli elementi da un array creato apposta, considerando che la funzione calcolerà al rilascio del mouse su quali clip il selettore si è esteso
sulla base di quanto scritto nel ragionamento, questo sarebbe il codice... ora come detto, io non lo posso provare
sarebbe da verificare che tutto funzioni correttamente...
codice:
var actualObjects:Array = new Array("pippo", "pluto", "paperino", "topolino", "minnie");
var selectionArray:Array = new Array();
var verify:Boolean = false;
var mouseObj:Object = new Object();
mouseObj.target = this;
mouseObj.name = "select";
mouseObj.level = this.getNextHighestDepth();
mouseObj.insertToArray = function() {
for(var i = 0; i<actualObjects.length; i++){
if(this.target[actualObjects[i]].hitTest(this.target[this.name])){
selectionArray.push(actualObjects[i]);
}
}
}
mouseObj.drawRectangle = function(target:MovieClip, name:String, level:Number, x:Number, y:Number, width:Number, height:Number){
target.createEmptyMovieClip(name, level);
with(target[name]){
lineStyle(1, 0x000000, 100);
moveTo(0, 0);
beginFill(0x000000, 10);
lineTo(width, 0);
lineTo(width, height);
lineTo(0, height);
lineTo(0, 0);
endFill();
_x = x;
_y = y;
}
}
mouseObj.clearRectangle = function(target, name){
target[name].removeMovieClip();
}
mouseObj.useArray = function(array:Array){
// azioni per utilizzare i clip selezionati
}
mouseObj.onMouseDown = function(){
verify = true;
this.xpos = _xmouse;
this.ypos = _ymouse;
}
mouseObj.onMouseUp = function(){
verify = false;
this.insertToArray();
this.clearRectangle(this.target, this.name);
this.useArray(selectionArray);
}
mouseObj.onMouseMove = function(){
if(verify){
this.drawRectangle(this.target, this.name, this.level, this.xpos, this.ypos, this.target._xmouse-this.xpos, this.target._ymouse-this.ypos);
}
}
Mouse.addListener(mouseObj);