Willkommen auf dem Portal für Mediengestalter
|
|
Autor |
Nachricht |
steff80
Dabei seit: 20.04.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 23.04.2008 08:40
Titel
|
|
|
Looki
Damit solltest du was anfangen können.
Grüße
|
|
|
|
|
ali_r
Threadersteller
Dabei seit: 22.03.2008
Ort: Hamburg
Alter: -
Geschlecht:
|
Verfasst Mi 23.04.2008 19:26
Titel
|
|
|
Danke speedcu
Papervision war eine gute Empfehlung.
Das war ein sehr hilfreicher Link, hat mich ein ganzes Stück näher an mein Ziel gebracht.
An alle anderen ebenfalls danke.
|
|
|
|
|
Anzeige
|
|
|
FeeBaa
Dabei seit: 04.02.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Do 24.04.2008 02:25
Titel
|
|
|
Hi,
ich schliesse mich FlamingArt an, Papervision hilft dir bei der Umsetzung kein bisschen weiter im Gegenteil, du blaehst das ganze unnoetig auf.
Die Bilder werden doch nur verkleinert, das Verhaeltnis von x-Achse zur y-Achse bleibt gleich.
Geh wieder zurueck zu der Ueberlegung, wie du das Projekt aufbaust, da kommst du nicht drum herum.
LG
FeeBaa
|
|
|
|
|
ali_r
Threadersteller
Dabei seit: 22.03.2008
Ort: Hamburg
Alter: -
Geschlecht:
|
Verfasst Do 24.04.2008 17:53
Titel
|
|
|
Also irgendwie komm ich nicht so richtig weiter.
Ich hab hier mal was ohne 3D Engine versucht, aber er zoomt nur dorthin,
wo die maus positioniert ist. Was ich aber will ist, dass er genau das angeklickte Objekt fokusiert und zentriert anzoomt.
Hab es mal hochgeladen:
Beispiel
Und in einem Movieclip diesen Code hier eingefügt:
Code: | onClipEvent (mouseDown) {
if (k>0) {
return;
}
zoom = true;
dir == 1 ? (dir=-1) : (dir=1);
if (dir == 1) {
pt = {x:_root._xmouse, y:_root._ymouse};
}
}
onClipEvent (enterFrame) {
if (!zoom) {
return;
}
_root._xscale += dir*k*50/8;
_root._yscale += dir*k*50/8;
var pt2 = {x:pt.x, y:pt.y};
_root.localToGlobal(pt2);
_root._x -= (pt2.x-pt.x);
_root._y -= (pt2.y-pt.y);
k++;
if (k == 5) {
zoom = false;
k = 0;
}
} |
Danke
Edit:
Habe mich hier nochmal umgeschaut und das ist eigentlich genau das was ich suche,
allerdings funktioniert da überhaupt nichts.
Ich hab in ner Flash Datei Movieclips angelegt mit den Namen:
instance_1, instance_2, instance_3.
Habe den Code auch hier von:
// attach movie
this.attachMovie("instance" , "instance_mc_"+i,i);
in
// attach movie
this.attachMovie("instance_" + i, "instance_mc_"+i,i);
geändert und das ganze in einer AS Datei im selben Ordner abgespeichert.
Funktionieren tut allerdings nichts, ich erhalte nur tausende Compiler Fehler.
Zuletzt bearbeitet von ali_r am Do 24.04.2008 18:47, insgesamt 1-mal bearbeitet
|
|
|
|
|
ali_r
Threadersteller
Dabei seit: 22.03.2008
Ort: Hamburg
Alter: -
Geschlecht:
|
Verfasst Sa 26.04.2008 18:01
Titel
|
|
|
Weiss denn keiner Rat?
|
|
|
|
|
ali_r
Threadersteller
Dabei seit: 22.03.2008
Ort: Hamburg
Alter: -
Geschlecht:
|
Verfasst Mo 28.04.2008 17:10
Titel
|
|
|
Habe versucht mich da reinzuwurtschln,
aber irgendwie wird das nichts.
Kann sich nicht einer erbarmen und mir helfen?
Wäre echt dankbar.
|
|
|
|
|
FeeBaa
Dabei seit: 04.02.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 30.04.2008 12:41
Titel
|
|
|
Hi ali-r
Wie genau willst du denn das Beispiel umsetzen, dass du in deinem Ausgangsposting verlinkt hast?
Wenn es ein bisschen Zeit hat, bastele ich ein Tutorium fuer dich zusammen. Nur muesst ich halt wissen, was genau du willst. Wenn du dann doch was anderes haben wolltest als ich dachte, muss ich ja wieder von vorne anfangen. Du kannst ja vielleicht ein paar Skizzen zusammenstellen, die mir als Storyboard dienen und mir alle zumailen.
LG
FeeBaa
|
|
|
|
|
FeeBaa
Dabei seit: 04.02.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 30.05.2008 10:48
Titel
|
|
|
Hi ali,
ich hab die Scale-Funktion ausprobiert und schreib dir hier hin, so weit wie ich's hab. Was noch fehlt ist das dynamische Laden deiner Bilder. Hier hab ich ein einziges Bild mit Namen creek.png im images Ordner neben das Flashdokument gelegt.
1) Flashdokument:
Leg ein Flashdokument mit AS3 an.
Setz einen MovieClip als Button auf die Buehne und gibt ihm den Instanznamen _btn. Dieser Button schliesst dein vergroessertes Bild wieder.
Auf einer neuen Ebene schreibst du dieses Skript in Frame 1:
import ZoomImage;
import flash.geom.Point;
var points_arr:Array = new Array();
points_arr.push(new Point(397, 288));
points_arr.push(new Point(577, 248));
points_arr.push(new Point(497, 448));
points_arr.push(new Point(677, 408));
points_arr.push(new Point(200, 500));
_btn.visible = false;
var img:ZoomImage;
for(var s:String in points_arr)
{
img = new ZoomImage("images/creek.png");// hard coded test image
img.x = points_arr[s].x;
img.y = points_arr[s].y;
img.addEventListener(ZoomImage.BIG_EVENT, bigEventFunc);
addChild( img );
}
function bigEventFunc(evt:Event):void
{
_btn.visible = true;
}
_btn.addEventListener(MouseEvent.CLICK, buttonClick);
function buttonClick(evt:MouseEvent):void
{
_btn.visible = false;
ZoomImage.isBig.shrink();
}
2) Skalierung:
Leg eine Actionscriptklasse an und nenn sie ZoomImage.as speichere diese Klasse mit folgendem Inhalt neben deinem Flashdokument.
package
{
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
//import flash.geom.Point;
import flash.geom.Rectangle;
import flash.net.URLRequest;
import fl.transitions.Tween;
import fl.transitions.TweenEvent;
import fl.transitions.easing.*;
public class ZoomImage extends Sprite
{
public static var BIG_EVENT:String = "big";
public static var isBig:ZoomImage;
private var center_pt:Rectangle;
private var orig_pt:Rectangle;
private var thumb_src:String;
private var scale_up:Tween;
private var scale_dn:Tween;
private var thumb_loader:Loader;
private var main_loader:Loader;
private var _scale:Number = 0;
private static var clickable:Boolean = true;
function ZoomImage(image_src:String)
{
center_pt = new Rectangle( 512, 384, 800, 600 );
thumb_loader = new Loader();
thumb_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, thumbLoaded);
thumb_loader.load(new URLRequest(image_src));
addChild(thumb_loader);
}
private function thumbLoaded(evt:Event):void
{
thumb_loader.content.width = 100;
thumb_loader.content.height = 75;
orig_pt = new Rectangle(x, y, width, height);
// center thumb image
thumb_loader.x = -Math.round(thumb_loader.width / 2);
thumb_loader.y = -Math.round(thumb_loader.height / 2);
addEventListener(MouseEvent.CLICK, thumbClick);
}
private function thumbClick(evt:MouseEvent):void
{
if (clickable)
{
if (isBig != this)
{
trace("CLICKED");
parent.setChildIndex(this, parent.numChildren - 1);
scale_up = new Tween(this, "scale", Regular.easeOut, 0, 1, 1, true);
scale_up.addEventListener(TweenEvent.MOTION_FINISH, finishScaleUp);
clickable = false;
isBig = this;
}
}
}
private function finishScaleUp(evt:Event):void
{
scale_up.removeEventListener(TweenEvent.MOTION_FINISH, finishScaleUp);
dispatchEvent(new Event(BIG_EVENT));
}
public function shrink():void
{
scale_dn = new Tween(this, "scale", Regular.easeOut, 1, 0, 1, true);
scale_dn.addEventListener(TweenEvent.MOTION_FINISH, finishScaleDn);
}
private function finishScaleDn(evt:Event):void
{
scale_up.removeEventListener(TweenEvent.MOTION_FINISH, finishScaleDn);
isBig = null;
clickable = true;
}
public function set scale(n:Number)
{
_scale = n;
x = orig_pt.x + (center_pt.x - orig_pt.x) * n
y = orig_pt.y + (center_pt.y - orig_pt.y) * n
width = orig_pt.width + (center_pt.width - orig_pt.width) * n;
height = orig_pt.height + (center_pt.height - orig_pt.height) * n;
}
public function get scale():Number
{
return _scale;
}
}
}
Das hilft dir hoffentlich weiter, im Moment komm ich leider zu nichts und weiss auch nicht, wann ich wieder Zeit hab.
LG
FeeBaa
|
|
|
|
|
|
|
|
Ähnliche Themen |
Umsetzung Layout Tab./DIV
KPI / Dashboard Umsetzung
Layout-Umsetzung
flashsite umsetzung
HP - Technische Umsetzung
Hilfe bei Umsetzung für Navi
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|