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.**
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 ...
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)
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.**
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:
Ma presentava diverse "incompatibilità" con ciò che volevo creare io...ovvero: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)
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!![]()
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 '.
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!
![]()
Ciao rtank,
l' ho appena finito
Lo pubblico domani come utilità gratuita.
Quando provo ad aprire main.fla mi da un "formato di file imprevisto"? Argh!![]()
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'); } } }
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!![]()
Bookmarks