mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 26.04.2024 23:57 Benutzername: Passwort: Auto-Login

Thema: Umsetzung einer Idee vom 21.04.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Multimedia -> Umsetzung einer Idee
Seite: Zurück  1, 2, 3  Weiter
Autor Nachricht
steff80

Dabei seit: 20.04.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 23.04.2008 08:40
Titel

Antworten mit Zitat Zum Seitenanfang

Looki

Damit solltest du was anfangen können.

Grüße
  View user's profile Private Nachricht senden
ali_r
Threadersteller

Dabei seit: 22.03.2008
Ort: Hamburg
Alter: -
Geschlecht: Männlich
Verfasst Mi 23.04.2008 19:26
Titel

Antworten mit Zitat Zum Seitenanfang

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.
  View user's profile Private Nachricht senden
Anzeige
Anzeige
FeeBaa

Dabei seit: 04.02.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 24.04.2008 02:25
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
ali_r
Threadersteller

Dabei seit: 22.03.2008
Ort: Hamburg
Alter: -
Geschlecht: Männlich
Verfasst Do 24.04.2008 17:53
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
ali_r
Threadersteller

Dabei seit: 22.03.2008
Ort: Hamburg
Alter: -
Geschlecht: Männlich
Verfasst Sa 26.04.2008 18:01
Titel

Antworten mit Zitat Zum Seitenanfang

Weiss denn keiner Rat? Menno!
  View user's profile Private Nachricht senden
ali_r
Threadersteller

Dabei seit: 22.03.2008
Ort: Hamburg
Alter: -
Geschlecht: Männlich
Verfasst Mo 28.04.2008 17:10
Titel

Antworten mit Zitat Zum Seitenanfang

Habe versucht mich da reinzuwurtschln,
aber irgendwie wird das nichts.
Kann sich nicht einer erbarmen und mir helfen?
Wäre echt dankbar.
  View user's profile Private Nachricht senden
FeeBaa

Dabei seit: 04.02.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 30.04.2008 12:41
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
FeeBaa

Dabei seit: 04.02.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 30.05.2008 10:48
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
 
Ähnliche Themen Umsetzung Layout Tab./DIV
KPI / Dashboard Umsetzung
Layout-Umsetzung
flashsite umsetzung
HP - Technische Umsetzung
Hilfe bei Umsetzung für Navi
Neues Thema eröffnen   Neue Antwort erstellen Seite: Zurück  1, 2, 3  Weiter
MGi Foren-Übersicht -> Multimedia


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.