2016-07-06 12 views
0

Ich war auf der Suche auf einer Frage zu verlängern ich früher hier gefragt:Flash AS3 | Schaffung einer Kamera/Moving Ansichtsfenster/Zoom

Flash AS3 | Pan/Zoom with mouse input

Die Basis ist nun, dass mit dieser Lösung arbeiten, ich freue mich auf meinen Prozess zu verbessern viel mehr, um ein qualitativ besseres Ergebnis zu erzielen.

Was ich hier frage ist, ob jemand mir helfen könnte, einen Weg zu finden, so dass das "Viewport" (was auf dem Bildschirm angezeigt wird) an ein Objekt gebunden ist oder ihm folgt. So wie man beispielsweise das Zielfernrohr eines Scharfschützengewehrs zeigt, sieht man das Bild im Wesentlichen durch ein HUD, und man sieht verschiedene Teile des Bildes, wenn sich das HUD bewegt.

Gibt es nebenbei eine Möglichkeit, eine Zoomfunktion zu implementieren? Meine einzige Vermutung ist es, das tatsächlich angezeigte Bild selbst zu vergrößern, also wäre jede Hilfe wirklich toll!

Danke nochmal Jungs!

+1

Wenn die andere ** [Antwort] (http://stackoverflow.com/a/37242829/2057709) ** Ihnen eine funktionierende Lösung gab, sollten Sie das als richtig markieren. –

+0

PS: Ja, um den Zoom zu vergrößern, musst du vergrößern (siehe 'scaleX' und' scaleY'). Erstellen Sie für die Maskierung einen MovieClip, der einen radialen Farbverlauf enthält (weiße Mitte, die nach außen zu schwarz verläuft) und dann einen "blendMode" wie "Multiplizieren" oder möglicherweise "Überlagerung" verwenden. Fügen Sie den Farbverlauf-MC hinzu, um nach dem Bild zu staffeln, um es darüber zu setzen. Es sollte Bild wie durch einen Bereich zeigen. Probieren Sie das aus und sehen Sie, was Sie über das Ergebnis denken ... –

Antwort

3

Ich denke, ein Weg, um den gewünschten Effekt zu erzielen, ist, den gesamten Inhalt, den Sie haben wollen, auf den Bildschirm zu bringen und in einen MovieClip zu legen. Dann, wenn Sie einen Namen für diese MovieClip- haben, können Sie einstellen, wo es positioniert ist, so dass es sich um ein Objekt fokussiert ist, die etwa wie folgt aussehen:

holder.x = screenWidth/2 - holder.object.x; 
holder.y = screenHeight/2 - holder.object.y; 

Dieses wenig Mathematik die Position des Objektes im nimmt zu der holder MovieClip und passt ihn so an, dass der ganze MovieClip verschoben wird und dieser Punkt in die Mitte gesetzt wird.

Sobald Sie es dort haben, können Sie die Ansicht vergrößern, indem Sie die scaleX und scaleY des holder MovieClip- 1 einzustellen, ist der Standardwert für so ein 200% Zoom 2 sein würde und so weiter. Der MovieClip zoomt jedoch vom Ankerpunkt aus, nicht von der Mitte des Bildschirms, sodass Sie den MovieClip jederzeit verschieben müssen, um ihn zu skalieren.