Director: zoom e pan immagini

salve a tutti,
ho gia scritto in diversi forum ma nn ho ancora trovato nessuno che mi sappia aiutare...
sto cercando di creare un cd multimediale contentente delle tavole architettoniche abbastanza grandi (3000x1500) rispetto allo stage (1024x768), quindi bisogno di qualcosa che mi permetta di effettuare degli zoom avanti e indietro e un pan (con trascinamento del cursore del muose sull' immagine)...vi premetto che nn conosco molto bene il linguaggio lingo e riesco male a pena a modificare gli scrip che trovo nelle discussioni on line... :)
Tuttavia navigando ho trovato uno script (che in realtà sono tre behavior) molto adatto al mio caso infatti permette di zoommare e trascinare l'immagine (ALLEGATO IN FONDO).
Testandolo personalmente l' ho trovato molto azzeccato, solamente che ha un grande difetto ke ora vi spiego :)...
il difetto è che ogni volta che clicco sul pulsante zoom (sia in che out) e ogni volta che clicco con il muose sull' immagine ingrandita per tracinarla l'immagine ingrandita si riposiziona sempre al centrata rispetto alla finestra di navigazione cosa che rende la navigazione dell' immagine molto scomoda ... (è piu facile a vederlo che a spiegarlo :) ) qualcuno saprebbe aiutarmi per trovare una soluzione a questo problema ... gliene sarei eternamente grata! ECCO QUI GLI SCRIPT
i primi due sono da assegnare ai tasti zoom io di solito utilizzo due rettangolini [code:iesvayjl]on mouseUp me
sendAllSprites(#zoomIn)
end on mouseUp me
sendAllSprites(#zoomIn)
end[/code:iesvayjl] MENTRE QUESTO PIU CORPOSO è DA APPLICARE ALLA FINESTRA DI NAVIGAZIONE (di solito utilizzo la tavola alle dimensioni di zoom 100% in modo che entri nello stage) poi lo script in automatico chiede il collegamento all' immagine più grande anchessa da inserire nel cast ... [code:iesvayjl]-- ZOOM IMAGE --
-- ----------------------------------------------------------------------
-- ---------------------------------------------------------------------- -- PROPERTY DECLARATIONS -- property sourceMember -- member containing high-resolution image
property zoomFactor -- amount to zoom for each step
property bgColor -- color used to fill blank areas property pSprite -- sprite to which this behavior is attached
property pImage -- image of the member of this sprite
property pRect -- rect of pImage
property pSourceRect -- rect of sourceMember
property pSourceWidth -- width of sourceMember
property pSourceHeight -- height of sourceMember
property pTargetWidth -- width of this sprite
property pTargetHeight -- height of this sprite
property pMinScale -- scale at which picture just reaches edges
property pScale -- current scale of the image property pStartLocH
property pStartLocV -- EVENT HANDLERS -- on beginSprite(me)
me.mInitialize()
end beginSprite on mouseDown(me)
pStartLocH = the mouseH
pStartLocV = the mouseV if not (the actorList).getPos(me) then
(the actorList).append(me)
end if
end mouseDown on stepFrame(me) -----------------------------------------------------
-- SOURCE: Received while the mouse is held down over this sprite
-- ACTION:
-------------------------------------------------------------------- if the mouseUp then
(the actorList).deleteOne(me)
exit
end if vOffsetH = 5 * the mouseH - 5*pStartLocH --qui bisogna agire per aumentare il potere di pan
vOffsetV = 5 * the mouseV - 5*pStartLocV me.mRedraw(vOffsetH, vOffsetV)
end stepFrame -- PUBLIC METHODS -- on ZoomIn(me) -------------------------------------------------------- pScale = pScale * zoomFactor
if pScale > 1 then
pScale = 1
end if me.mRedraw()
end ZoomIn on ZoomOut(me) -------------------------------------------------------
-- ACTION: Redraws the picture at a lower magnification
-------------------------------------------------------------------- pScale = pScale / zoomFactor
if pScale < pMinScale then
pScale = pMinScale
end if me.mRedraw()
end ZoomOut -- PRIVATE METHODS -- on mInitialize(me) ---------------------------------------------------
-- SOURCE: Sent by new()
-- ACTION: Displays the source image at its lowes magnification,
-- and prepares the properties required for zooming
-------------------------------------------------------------------- pSprite = sprite(me.spriteNum)
pRect = pSprite.rect
pRect = pRect.offset(pRect.left, pRect.top) pTargetWidth = pRect.width
pTargetHeight = pRect.height vImage = sourceMember.image
vDepth = vImage.depth
vPalette = vImage.paletteRef
pImage = image(pTargetWidth, pTargetHeight, vDepth, vPalette)
pSprite.member.image = pImage
pImage = pSprite.member.image pSourceRect = sourceMember.rect
pSourceWidth = pSourceRect.width
pSourceHeight = pSourceRect.height pMinScale = float(pTargetWidth) / pSourceWidth
vTemp = float(pTargetHeight) / pSourceHeight
if pMinScale > vTemp then
pMinScale = vTemp
end if pScale = pMinScale me.mRedraw()
end mInitialize on mRedraw(me, aOffsetH, aOffsetV) -----------------------------------
-- SOURCE: Sent by new(), ZoomIn(), ZoomOut() and stepFrame()
-- ACTION: Displays the source image at its current magnification
-------------------------------------------------------------------- -- Horizontal
if voidP(aOffsetH) then
aOffsetH = 0
end if vWidth = pSourceWidth * pScale
vLeft = (pTargetWidth - vWidth) / 2 vTemp = 0.22* vLeft + aOffsetH
if vWidth < pTargetWidth then
vRight = vLeft + vWidth --QUI DEVI AUMENTARE IL VALO N* vLeft per aumentare il raggio di scroll else
if vTemp > 0 then
vLeft = 0 else
vLeft = vTemp
end if vRight = vLeft + vWidth if vRight < pTargetWidth then
vRight = pTargetWidth
vLeft = pTargetWidth - vWidth
end if
end if -- Vertical
if voidP(aOffsetV) then
aOffsetV = 0
end if vHeight = pSourceHeight * pScale
vTop = (pTargetHeight - vHeight) / 2 vTemp = vTop + aOffsetV
if vHeight < pTargetHeight then
vBottom = vTop + vHeight --QUI DEVI AUMENTARE IL VALO N* vLeft per aumentare il raggio di scroll else
if vTemp > 0 then
vTop = 0 else
vTop = vTemp
end if vBottom = vTop + vHeight if vBottom < pTargetHeight then
vBottom = pTargetHeight
vTop = pTargetHeight - vHeight
end if
end if -- CopyPixels
vTargetRect = rect(vLeft, vTop, vRight, vBottom)
pImage.fill(pRect, bgColor)
pImage.copyPixels(sourceMember.image, vTargetRect, pSourceRect)
end mRedraw -- BEHAVIOR PARAMETERS -- on getPropertyDescriptionList(me)
vPropertyList = [:] vPropertyList[ #sourceMember] = [ #comment: "Source member", #format: #bitmap, #default: member(1)] vPropertyList[ #zoomFactor] = [ #comment: "Zoom factor", #format: #float, #range: [#min: 1.0, #max: 2.0], #default: 1.5] vPropertyList[ #bgColor] = [ #comment: "Background color", #format: #color, #default: rgb(255, 255, 255)] return vPropertyList
end getPropertyDescriptionList[/code:iesvayjl]

 fraciatta, N.D.

Re: Director: zoom e pan immagini

Ciao, purtroppo non ho avuto il tempo per leggere il codice,
però potrebbe convenirti usare un sistema di zoom e navigatore di flash (che puoi usare in Director).
Vedi qua: http://www.yofla.com/flash/flash-zoomer/

 Pablito, N.D.

Re: Director: zoom e pan immagini

grazie per la tempestiva risposta ... ho dato un occhiata al risultato presente sul sito ed è interessante ... incomincerò con l'istallare per la prima volta adobe flash visto che nn lo conosco se non per sentito dire :) (altrimenti non riuscirei a cambiare i bottoni ecc perche avrei bisogno di layout differente)...
nn vorrei approfittare della tua esperienza ma purtroppo mi sto avvicinando adesso a questi software ... cmq lo script che ti ho postato sopra sarebbe veramente ben fatto (salvo quel problema) in quanto consente gestire tutto in ambiente director e la sua interfaccia è molto intuitiva ... (sicuramente è un po meno "articolato" di quello che mi hai consigliato tu)
infine nn ti nascondo che utilizzare quel tipo di behavoir (in lingo) per la mia limitata esperienza sarebbe di gran lunga più adatto...

 fraciatta, 3 Oct 2013

Re: Director: zoom e pan immagini

ciao di nuovo oramai ho familiarizzato con quello che mi hai consiglaito tu su flash ... ora ho l'image zoomer (in flash) importato come riferimento in director e fin qui tutto bene ...
il mio quesito è questo:
quando tento di far leggere il mio movie di director (che devo masterizzare in un CD) in un altro computer, l'altro computer deve avere per forza installato flash player ?? (credo di si) e se non lo avesse installato???
Mi chiedevo se esistesse una maniera per ovviare tale problema, magari permettere una installazione veloce di flash player (magari automatica) all' avvio del CD ... o magari qualcosa di ancora più semplice ... avete qualche idea a riguardo??? grazie
Francesco

 fraciatta, N.D.

Re: Director: zoom e pan immagini

[quote:3hcs4k9t]l'altro computer deve avere per forza installato flash player?[/quote:3hcs4k9t] Ciao Franciatta,
la soluzione al tuo problema è utilizzare i proiettori (vale sia per Flash che per Director).
Il proiettore ti permetterà di creare un file .exe con tutto incluso e senza bisogno di installare alcun player. Vedi la guida in linea per creare un proiettore e ricordati di aggiungere gli Xtra necessari per il corretto funzionamento del tuo file.

 Pablito, N.D.

Re: Director: zoom e pan immagini

grazie infinite per la risposta
guardando la guida on line ho capito dove agire, almeno credo :
da director : menu modify > movie > xtras > poi dalla tabella ho aggiunto "Flash assets" e "Flash assets options" (erano gli unici che mi sembravano adatti al mio caso)
esiste per caso un Xtra per far funzionare la rotellina del muose come zoom perchè nell' applicazione flash non importata funziona, mentre nell' file.exe generato da director no...

 fraciatta, N.D.

Re: rotellina del mouse

In quel caso specifico della rotellina del mouse non ricordo, però di sicuro puoi risolvere facendo tutto in Flash (proiettore compreso). Ma suppongo che non sia la tua soluzione ideale, quindi aspetteremo un ulteriore contributo della comunità.

 Pablito, N.D.

Re: Director: zoom e pan immagini

grazie, attenderò con anzia ulteriori altri contributi...anche se questa discussione non ha trovato molti interessati...
ciao!

 fraciatta, N.D.
001design.it ® è un marchio registrato.
© 2004-2017 Molfese Paolo - P.Iva: 03430820617 - All rights reserved | Tutti i diritti sono riservati.