caro swandive, io ho appena fatto una cosa simile e te la mando. a disposizione per spiegazioni.
codice:
// **************INIZIO************************
// ANCORA1: ALTEZZA E LARGHEZZA DELLA CARTINA IN OGGETTO
_global.larcartina = 1067;
_global.altcartina = 715;
_global.rapporto = _global.larcartina/_global.altcartina;
//DIMENSIONAMENTO E POSIZIONAMENTO INIZIALE CARTINA
//ANCORA2: la cartina va centrata nel Mclip che la
//contiene (vedi "Ancora3")
with (_root.cartina) {
// La larghezza iniale si calcola a partire dall'altezza
// che è fissa. E' definita come globale perché serve
// successivamente nell'ingrandimento.
// L' if valuta se é più alta o più larga e applica il
// ridimensionamento di conseguenza.
if (_global.larcartina<=_global.altcartina) {
_global.lar = (_global.larcartina*550)/_global.altcartina;
_global.alt = 550;
} else {
_global.lar = 740;
_global.alt = (_global.altcartina*740)/_global.larcartina;
}
// ANCORA3: La posizione iniziale é a 0 + la metà
// dello spazio utile (vedi "Ancora2")
xiniziale = 0+_global.lar/2;
yiniziale = 0+_global.alt/2;
// Viene applicata la dimensione definita
_root.cartina._width = _global.lar;
_root.cartina._height = _global.alt;
// Viene applicata la posizione definita
_root.cartina._x = xiniziale;
_root.cartina._y = yiniziale;
};
// **************FINE**************************
// **************INIZIO************************
// INGRANDIMENTO / RIDUZIONE CARTINA
// Definisce i
i = 1;
// ***INGRANDIMENTO***
_root.su.onPress = function() {
// Definizione del valore massimo di i, che influenza
// gli "scatti".
if (i<10) {
// Prende il valore della larghezza della
// cartina (_global.lar) e gli aggiunge un
// valore numerico. Così il valore diventa più grande.
// Ciò serve
// sia a definire la nuova dimensione della cartina, sia
// a tenere memoria per gli ingrandimenti successivi e
// per le riduzioni.
// Il valore numerico é moltiplicato per il rapporto
// tra larghezza e altezza della cartina.
_global.lar = _global.lar+(100*_global.rapporto);
// Assegnazione del valore definito.
_root.cartina._width = _global.lar;
// Idem per l'altezza.
_global.alt = _global.alt+100;
_root.cartina._height = _global.alt;
// i viene incrementato
i++;
}
};
// ***RIDUZIONE***
// Tutto come l'ingrandimento, ma al contrario.
_root.giu.onPress = function() {
if (i>1) {
_global.lar = _global.lar-(100*_global.rapporto);
_root.cartina._width = _global.lar;
_global.alt = _global.alt-100;
_root.cartina._height = _global.alt;
i--;
}
};
// **************FINE**************************
// **************INIZIO************************
// DRAG
_root.drag.onPress = function() {
// (740/2) => calcola il centro dello spazio utile
// - => si deve andare a sinistra
// _global.lar-740
// => si calcola il margine che rimane fuori
// dallo spazio utile (a destra + a sinistra)
// /2 => il martgine da una sola parte
_global.dr_x_1 = (740/2)-((_global.lar-740)/2);
_global.dr_x_2 = (740/2)+((_global.lar-740)/2);
_global.dr_y_1 = (550/2)-((_global.alt-550)/2);
_global.dr_y_2 = (550/2)+((_global.alt-550)/2);
_root.cartina.startDrag(false, _global.dr_x_1, _global.dr_y_1, _global.dr_x_2, _global.dr_y_2);
};
_root.drag.onRelease = function() {
_root.cartina.stopDrag();
};