+ Reply to Thread
Page 1 of 2 1 2 LastLast
Results 1 to 10 of 11

[FLASH 8] zoom relativo al click

This is a discussion on [FLASH 8] zoom relativo al click within the Actionscript 3.0 base forums, part of the Flash Italiano category; Ciao a tutti. Ho navigato in lungo ed in largo o se preferite su e giù per _root._X e _root._Y ...

  1. #1
    Junior Member Settled In rtank is on a distinguished road
    Join Date
    Mar 2008
    Posts
    8
    Rep Power
    0

    Unhappy [FLASH 8] zoom relativo al click

    Ciao a tutti.

    Ho navigato in lungo ed in largo o se preferite su e giù per _root._X e _root._Y (si vede che sono fuso? ) alla ricerca della soluzione ad un mio problema:

    ho bisogno d'ingrandire un mc relativamente alle coordinate del mouse.

    In pratica (detto proprio banale banale) l'ingrandimento del clip deve avvenire nel punto esatto in cui clicco col mouse.

    L'effetto zoom ce l'ho. Ciò che mi manca è dargli quell'istruzione ( "e ti pare poco", m'hanno detto )

    Ormai ho quasi rinunciato a trovare qualcuno che sappia come fare, e vi dirò che quel poco di speranza che m'è rimasta è sotto accanimento terapeutico...Dunque mi sa che muoio prima io

    Posso postare .fla su richiesta

    Grazie a tutti in anticipo (in pratica onEnterFrame )

  2. #2
    Administrator Living At The FlepStudio! Flep is on a distinguished road
    Join Date
    Jul 2007
    Posts
    5,762
    Rep Power
    11

    Re: [FLASH 8] zoom relativo al click

    ciao e benvenuto

    hai un esempio da farci vedere ? Non ho capito cosa intendi quando dici:
    **l'ingrandimento del clip deve avvenire nel punto esatto in cui clicco col mouse.**

  3. #3
    Junior Member Settled In rtank is on a distinguished road
    Join Date
    Mar 2008
    Posts
    8
    Rep Power
    0

    Re: [FLASH 8] zoom relativo al click

    Innanzitutto grazie infinitamente della risposta e complimenti per il forum, davvero bello e funzionale :)

    Allora...

    dai un'occhiata a quest'esempio qui ...

    In questo caso presumo si tratti di un viewer che opera con .jpg caricate da chissà dove...Nel mio caso invece dovrebbe trattarsi di un MC già presente sullo stage;

    Di questo viewer a me servirebbero "solo" due cose:

    -al primo click sul movieclip: effetto ingrandimento relativo al punto in cui si clicca (e non dunque zoom "assoluto");
    -al secondo click sul movieclip (non importa in quale punto del mc): l'effetto di "reset" con cui nell'esempio è istanziato il pulsante "quadratino" e che riporta l'immagine alle dimensioni di partenza...

    Tutte le altre cose ("+", "-", la miniatura che "mappa" l'immagine) non mi servono..

    ----

    Ero riuscito a procurarmi questo codice as:
    Code:
    var cont = _root.createEmptyMovieClip("cont", 1);
    var vuot = cont.createEmptyMovieClip("vuot", 1);
    var targ = cont.createEmptyMovieClip("targ", 2);
    targ.attachMovie("pallino", "pallino", 1);
    cont._x = Stage.width/2;
    cont._y = Stage.height/2;
    var cObj = new Object();
    var tWee = new Tween();
    ///regola le dimensioni dell immagine all apertura///
    cObj.onLoadInit = function(target) {
        target._width = 200;
        target._height = 262;
        
        target._x = -target._width/2;
        target._y = -target._height/2;
        tW = cont._width;
        tH = cont._height;
    };
    var mcLoader = new MovieClipLoader();
    mcLoader.addListener(cObj);
    mcLoader.loadClip("img.jpg",vuot );
    var obj = new Object();
    
    obj.onMouseDown = function() {
        if (vuot.hitTest(_root._xmouse, _root._ymouse)) {
            targ._x = cont._xmouse;
            targ._y = cont._ymouse;
            tW = Math.floor(tW*2);
            tH = Math.floor(tH*2);
            x = Math.floor((vuot._x*2)-targ._x);
            y = Math.floor((vuot._y*2)-targ._y);
            vuot._width = tW;
            vuot._height = tH;
            vuot._x = x;
            vuot._y = y;
        }
    Mouse.removeListener(obj)
    };
    Mouse.addListener(obj)
    Ma presentava diverse "incompatibilità" con ciò che volevo creare io...ovvero:

    1-E' programmato per creare clip vuoti all'interno dei quali viene caricata e ridimensionata/zoomata l'immagine...Sfortunatamente funziona con le immagini e non con gli mc
    2-Sono riuscito ad istanziarlo per ciò che riguarda lo zoom IN (limitandolo ad un solo ingrandimento rimuovendo il listener dalla classe Mouse), ma non per lo zoomOUT (dovrei scrivere parte di codice a ritroso, ma non sembra fungere);
    3-Lo zoom avviene a "scatto" mentre invece io mi sono innamorato della transizione mx.transitions.easing.Strong.easeOut ...Con cui ho realizzato quest'altro esempio qui ...

    Credo di aver fornito quanti più elementi possibile, nonchè gli "incubi" con cui sto combattendo da oramai più d'un mese...Spero sinceramente che tu possa aiutarmi, te ne sarei infinitamente grato...Ma ti ringrazio comunque per aver almeno mostrato interesse al mio problema!
    Un abbraccio!

  4. #4
    Administrator Living At The FlepStudio! Flep is on a distinguished road
    Join Date
    Jul 2007
    Posts
    5,762
    Rep Power
    11

    Re: [FLASH 8] zoom relativo al click

    Grazie dell' accurata spiegazione, adesso ho capito.

    Non è cosa semplice ( non da restarci sveglio la notte s' intende ) ma ci vuole un po di tempo.
    Appena ho una mezzora cerco di farti un esempio ' grezzo '.

  5. #5
    Junior Member Settled In rtank is on a distinguished road
    Join Date
    Mar 2008
    Posts
    8
    Rep Power
    0

    Re: [FLASH 8] zoom relativo al click

    Quote Originally Posted by Flep View Post
    Non è cosa semplice ( non da restarci sveglio la notte s' intende
    Parla per te...Io non dormo da almeno 12 giorni! (e dire che non ci guadagno nulla, è semplicemente il mio sito personale e ci tengo troppissimo... )

    Cosa dirti...Spero che quella mezzora giunga presto () e ripeto, vada come vada hai i miei ringraziamenti più sinceri ed un link garantito (al tuo sito personale, a questo sito, o a tutte e due) all'interno del mio sito...A presto allora!

  6. #6
    Administrator Living At The FlepStudio! Flep is on a distinguished road
    Join Date
    Jul 2007
    Posts
    5,762
    Rep Power
    11

    Re: [FLASH 8] zoom relativo al click

    Ciao rtank,
    l' ho appena finito

    Lo pubblico domani come utilità gratuita.

  7. #7
    Junior Member Settled In rtank is on a distinguished road
    Join Date
    Mar 2008
    Posts
    8
    Rep Power
    0

    Re: [FLASH 8] zoom relativo al click

    Quote Originally Posted by Flep View Post
    Ciao rtank,
    l' ho appena finito

    Lo pubblico domani come utilità gratuita.
    Non ci credo, SEI UN GRANDE!!

    Speriamo sia lui......
    E se anche non fosse, grazie davvero di cuore per averci voluto dedicare quella tua "mezzora"!
    Resto in trepidante attesa di domani...

    :abbraccio:

  8. #8
    Junior Member Settled In rtank is on a distinguished road
    Join Date
    Mar 2008
    Posts
    8
    Rep Power
    0

    Re: [FLASH 8] zoom relativo al click

    Quando provo ad aprire main.fla mi da un "formato di file imprevisto"? Argh!

  9. #9
    Administrator Living At The FlepStudio! Flep is on a distinguished road
    Join Date
    Jul 2007
    Posts
    5,762
    Rep Power
    11

    Re: [FLASH 8] zoom relativo al click

    Ti serve per forza CS3 perchè è in Actionscript 3.0 .

    Ti copio il codice quì di seguito, al limite studi la logica e la porti su AS 2.0
    Code:
    /*
     *************************************
     * Zoomify
     * http://www.FlepStudio.org         
     * © Author: Filippo Lughi           
     * version 1.0                       
     *************************************
     */
    package org.FlepStudio
    {
    	import flash.display.*;
    	import flash.text.*;
    	import flash.events.*;
    	import flash.net.*;
    	import flash.ui.*;
    	import caurina.transitions.Tweener;
    	
    	public class Main extends MovieClip
    	{
    		private const IMAGE_PATH:String='pic.jpg';
    		
    		private var more:More;
    		private var less:Less;
    		
    		private var container_mc:MovieClip;
    		
    		private var original_width:Number;
    		private var original_height:Number;
    		private var ratioW:Number;
    		private var ratioH:Number;
    		
    		private var boo:Boolean=true;
    		
    		public function Main()
    		{
    			addEventListener(Event.ADDED_TO_STAGE,init);
    		}
    		
    		private function init(evt:Event):void
    		{
    			removeEventListener(Event.ADDED_TO_STAGE,init);
    			
    			stage.frameRate=31;
    			
    			apple_mc.alpha=0.8;
    			apple_mc.width=apple_mc.height=50;
    			apple_mc.x=stage.stageWidth/2-apple_mc.width/2;
    			apple_mc.y=stage.stageHeight/2-apple_mc.height/2;
    			
    			initMenu();
    			createContainer();
    			addMoreAndLess();
    			loadImage();
    		}
    		
    		private function createContainer():void
    		{
    			container_mc=new MovieClip();
    			addChild(container_mc);
    		}
    		
    		private function addMoreAndLess():void
    		{
    			more=new More();
    			more.visible=false;
    			more.mouseEnabled=false;
    			addChild(more);
    			
    			less=new Less();
    			less.visible=false;
    			less.mouseEnabled=false;
    			addChild(less);
    		}
    		
    		private function loadImage():void
    		{
    			var request:URLRequest=new URLRequest(IMAGE_PATH);
    			var loader:Loader=new Loader();
    			loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,setProgress);
    			loader.contentLoaderInfo.addEventListener(Event.COMPLETE,setComplete);
    			loader.load(request);
    		}
    		
    		private function setProgress(evt:ProgressEvent):void
    		{
    			var percent:uint=(evt.bytesLoaded/evt.bytesTotal)*100;
    			pre_txt.text=percent+' %';
    		}
    		
    		private function setComplete(evt:Event):void
    		{
    			apple_mc.stop();
    			removeChild(apple_mc);
    			removeChild(pre_txt);
    			
    			evt.target.loader.removeEventListener(Event.COMPLETE,setComplete);
    			
    			var bitmap:Bitmap=evt.target.loader.content as Bitmap;
    			bitmap.smoothing=true;
    			original_width=bitmap.width;
    			original_height=bitmap.height;
    			bitmap.width=stage.stageWidth;
    			bitmap.height=400;
    			container_mc.addChild(bitmap);
    			
    			ratioW=(original_width-stage.stageWidth)/stage.stageWidth;
    			ratioH=(original_height-stage.stageHeight)/stage.stageHeight;
    			
    			addMouseListeners();
    			addPicListeners();
    		}
    		
    		private function addMouseListeners():void
    		{
    			stage.addEventListener(MouseEvent.MOUSE_MOVE,setMove);
    		}
    		
    		private function setMove(evt:MouseEvent):void
    		{
    			if(container_mc.hitTestPoint(mouseX,mouseY))
    			{
    				Mouse.hide();
    				if(boo)
    				{
    					more.x=mouseX;
    					more.y=mouseY;
    					more.visible=true;
    					less.visible=false;
    				}
    				else
    				{
    					less.x=mouseX;
    					less.y=mouseY;
    					more.visible=false;
    					less.visible=true;
    				}
    			}
    		}
    		
    		private function addPicListeners():void
    		{
    			container_mc.addEventListener(MouseEvent.MOUSE_DOWN,setPicDown);
    		}
    		
    		private function setPicDown(evt:MouseEvent):void
    		{
    			evt.target.mouseEnabled=false;
    			
    			var bitmap:Bitmap=evt.target.getChildAt(0) as Bitmap;
    			if(!boo)
    			{
    				Tweener.addTween(bitmap,{x:0,y:0,width:stage.stageWidth,height:400,time:0.5,transition:"easeOutQuad",onComplete:enableMoreOnly});
    			}
    			else
    			{
    				var arrX:Number=mouseX*ratioW;
    				var arrY:Number=mouseY*ratioH;
    				
    				Tweener.addTween(bitmap,{x:-arrX,y:-arrY,width:original_width,height:original_height,time:0.5,transition:"easeOutQuad",onComplete:enableLessOnly});
    			}
    		}
    		
    		private function enableMoreOnly():void
    		{
    			less.visible=false;
    			more.x=mouseX;
    			more.y=mouseY;
    			more.visible=true;
    			boo=true;
    			container_mc.mouseEnabled=true;
    		}
    		
    		private function enableLessOnly():void
    		{
    			more.visible=false;
    			less.x=mouseX;
    			less.y=mouseY;
    			less.visible=true;
    			boo=false;
    			container_mc.mouseEnabled=true;
    		}
    		
    		public function initMenu():void
    		{
    			var etichetta:String='Flash CS3 zoom';
    			var cm:ContextMenu=new ContextMenu();
    			var item:ContextMenuItem=new ContextMenuItem(etichetta);
    			cm.hideBuiltInItems();
    			cm.customItems.push(item);
    			item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,itemHandler1);
    			this.contextMenu=cm;
    		}
    		private function itemHandler1(event:ContextMenuEvent):void
    		{
    			var url:String='http://www.flepstudio.org/';
    			var request:URLRequest=new URLRequest(url);
    			navigateToURL(request,'_parent');
    		}
    	}
    }

  10. #10
    Junior Member Settled In rtank is on a distinguished road
    Join Date
    Mar 2008
    Posts
    8
    Rep Power
    0

    Re: [FLASH 8] zoom relativo al click

    No no...mi procuro CS3...non voglio azzardare "adattamenti" con l'ulteriore rischio di perdere altro tempo :(

    Ho visto l'effetto in "preview" e cosa posso dirti...E' LUI!!! (e tu sei un genio )

    Un'ultima cosa e non ti disturbo più...E' possibile (come richiedevo in questo topic) adattare questo effetto ad un Movieclip (che contiene l'immagine) che sia già presente sullo stage?

    Grazie infinitamente!

+ Reply to Thread
Page 1 of 2 1 2 LastLast

Similar Threads

  1. Aiuto x gallery con multifoto e zoom in flash
    By wesley in forum Actionscript 3.0 base
    Replies: 0
    Last Post: 02-07-10, 09:58
  2. Zoom con Flash CS3
    By Flep in forum Articoli e tutorials
    Replies: 11
    Last Post: 14-01-10, 16:25
  3. transizione Zoom
    By Flep in forum Articoli e tutorials
    Replies: 0
    Last Post: 01-10-09, 14:01
  4. [CS3/AS2] Zoom In/Out with Easing
    By colt5034 in forum Actionscript 3.0 newbies
    Replies: 0
    Last Post: 18-06-09, 06:21
  5. Zoom with Flash CS3
    By Flep in forum Tutorials
    Replies: 0
    Last Post: 09-10-07, 18:38

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts