Visualizzazione dei risultati da 1 a 10 su 10

Discussione: zoom mappa

  1. #1

    zoom mappa

    ciao a tutti, sto creando una mappa di città e sto cercando di capire come poter zoomare e centrare la mappa sul punto da me scelto...

    ho creato un clip "mappa" e gli assegno queste azioni:

    onClipEvent (mouseDown) {
    // verifico che il mouse si trovi sopra la mappa
    if (_root.zone.hitTest(_root._xmouse, _root._ymouse, false)) {
    creo una variabile che incremento per stabilire uno zoom massimo
    _root.click = _root.click+1;
    if (_root.click<=4) {
    //355 è la posizione 0 della mappa
    this._x = 355-_xmouse;
    //247.5 è la posizione 0 della mappa
    this._y = 247.5-_ymouse;
    this._xscale = _root.click*200;
    this._yscale = _root.click*200;


    }
    }
    }
    ho provato questo script e quando non faccio lo zoom funziona, ovvero dove vado a cliccare col mouse mi centra la mappa, se invece inserisco lo zoom non funziona più...
    chi ha dei suggerimenti?

    ciao e grazie

  2. #2
    nessuno sa darmi una dritta?
    helpppppppppppppppp me please!

  3. #3

  4. #4
    grazie, ma se avessi trovato la soluzione su flash_mx o su altri siti simili non avrei scritto al forum...
    bye

  5. #5
    Utente di HTML.it L'avatar di Nuke
    Registrato dal
    Feb 2001
    Messaggi
    633
    io ci provo..

    da quanto vedo, tu muovi la mappa dopo il click del mouse, posizionandola a un determinato valore di x e y (calcolato alla posizione del mouse)

    per riuscire in questa cosa se unisci lo zoom, non dovresti moltiplicare il valore (positivo o negativo che sia) dello zoom anche ai valore di x e y di spostamento della mappa?
    In pratica anche a _x e _Y dare un incremento di spostamento ottenuto moltiplicando quello che tu hai chiamato "_root.click"
    Finding the answers comes knowledge knowing what the answers mean comes wisdom - http://www.catb.org/hacker-emblem/hacker.png

  6. #6
    Utente di HTML.it L'avatar di zadig
    Registrato dal
    Apr 2003
    Messaggi
    36

    l'ho fatto così e funziona

    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();
    };

  7. #7
    grazie per l'interesse...adesso provo a mettere in pratica i suggerimenti e vi farò sapere
    cius

  8. #8
    grazie zadig ....al momento ho adottato una soluzione più semplice
    anche perchè mi sembra di capire che il tuo script funzioni con lo zoom posizionato su pulsanti, o no?
    invece a me serviva ingrandire la cartina sul punto in cui cliccavo col mouse:

    onClipEvent (enterFrame) {
    if (_root.zone.hitTest(_root._xmouse, _root._ymouse, false)) {
    _root.x = _xmouse;
    _root.y = _ymouse;
    }

    }
    onClipEvent (mouseDown) {
    if (_root.zone.hitTest(_root._xmouse, _root._ymouse, false)) {
    if (_root.click<=6) {
    _root.click = _root.click+1;

    $x = _xmouse;
    $y = _ymouse;
    _root.mappa._x -= $x;
    _root.mappa._y -= $y;
    _root.mappa._xscale += 100;
    _root.mappa._yscale += 100;


    }
    }
    }

  9. #9
    mi è partito il messaggio prima di concludere....
    lo script è abbastanza semplice mi da problemi quando sposto la mappa e voglio ridurre lo zoom.
    nel primo onclipevent memorizzo le coordinate di x e y del mouse se si trovano al di sopra della zona della mappa che viene visualizzata. nel secondo raccolgo questa informazione ($x e $y) e ingrandisco la mappa in base ad esse.

    adesso però devo provare anche lo zoom da pulsanti esterni (caso similie al tuo)quindi proverò il tuo script
    ciao e grazie

  10. #10
    ancora io...
    all'inizio attribuisci dei valori di altezza e larghezza della cartina
    _global.larcartina = 1067;
    _global.altcartina = 715;

    successivamente ci sono altri valori 550 e 740 che non capisco da dove saltino fuori!

    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;

    altro dubbio ... mi dici che il clip deve stare dentro un altro quindi mi trovo di fronto ad un ipotetica situazione:
    _root.clipcontenitore.cartina ? non mi sembra che ci sia questa situazione nel tuo script

    ciao swan

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.