Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-06-2004, 02:03   #1 (permalink)
Eternal Newbe
 
Registriert seit: Aug 2002
Ort: Heidelberg
Beiträge: 241
Red face Komliziertes Zoomproblem: Bitte lesen!

Ich habe dieses Forum noch einmal durchgrast auf der Suche nach einer Antwort, aber leider war dies negativ.
Ich habe weiter unten schon einmal die Frage gestellt, aber keine Antwort erhalten, daher habe ich das FLA noch einmal etwas präzisiert - im Rahmen des möglichen.

Das zentrale Problem ist:
Wie kann ich ein MC(a) innerhalb eines MCs(b) nach einem Zoomvorgang auf 80% des MCs(b) vergrössern und gleichzeitig zentrieren lassen, auch wenn der MC(a) nicht zentrisch liegt.

Ich habe es soweit geschafft, jedoch funktioniert das zentrieren nur bei der Normalansicht (100%), aber beim hineinzoomen absolut nicht!

Nebenbei korrelieren die beiden enthaltenen MCs (a1 und a2) miteinander, da wenn man den ersten MC (a1) betätigt hat, anschliessend MC (a2), dann verschiebt sich beim rückzoom MC(a1) automatisch, was nicht sein soll... aber schaut bitte selber.

Datei unter: http://download.julianalbert.de/zoom.zip

Trotz meines Newbe-daseins würde ich gerne bei diesem Teil endlich mal weiterkommen. Es wäre hammerklasse, wenn mir irgendjemand von den Profis da draussen mal einen Tip geben kann!! Ich möchte nicht unbedingt, dass jemand das Teil korregiert, aber dass mir jemand die Probleme sagen kann... für mich funktioniert hier irgendwie noch zu viel mit Geisterhand... und da stecken schon etliche Tage arbeit drin... Helft Mir BITTE!!

Riesigen DANK im voraus!!!
__________________
JuL!
JuL! ist offline   Mit Zitat antworten
Alt 26-06-2004, 20:11   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
vielleicht kannst du mein kleines demo gebrauchen (flash MX)

Masken und Maximum/Minimum ?
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 26-06-2004, 20:12   #3 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
also das ist keine sache, die man mal eben schnell machen kann und auch viel zu spezifisch, als das es genau dafür bereits eine lösung geben könnte.
und sorry, für anfänger ist das auch nichts.

schau dir bitte mal den code (im anhang) in der ebene "hgseib" an. c7, c8, c9 geht so lala.
auf 80% geht, wer einmal voll offen war.

was jetzt noch nicht stimmt kommt daher, weil du den mittelpunkt der mc's nicht mittig setzt! so "windschief" muss jegliche programmierung versagen :-(
Angehängte Dateien
Dateityp: zip forum2.zip (17,7 KB, 21x aufgerufen)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 30-06-2004, 14:49   #4 (permalink)
Eternal Newbe
 
Registriert seit: Aug 2002
Ort: Heidelberg
Beiträge: 241
Post

Danke für deine Aufwand, hgseib!
Unschön an dieser Programmierung ist allerdings, das beim Klick auf ein Kästchen (insbesondere rechts unten) die Korrektur der Flugbahn sehr recht extrem ist.

Frage:
1. Ist es nicht möchlich die Flugbahn derart zu scripten, dass keine, bzw. kaum eine Korrektur nötig ist?!
2. Warum fliegt das Objekt eine derartige Kurve?! - Ist es nciht derart möglich, wie ich es gemacht habe?
3. Wie ist es nun möglich, dass beim hineinzoomen (via ZoomSlide) und verschieben des Screens weiterhin die Objekte automatisch sich mittig platzieren in entsprechender Grösse?!

Falls jemand von den Pro's dadraussen etwas zu diesen Fragen weiss, dann wäre dies echt genial. - Danke bereits im voraus!!!

Hier ist der entscheidende Sourcecode - auch downloadfähig bei dem vorherigen Posting:

PHP-Code:
var gFigurFelderAry = new Array(figure.c7figure.c8figure.c9);
var 
gFigurFeldFocus 0;
var 
gFigurFelderMin 100;
var 
gFigurFelderAnf 100;
var 
gFigurFelderMax 320;
var 
gScaleSpeed 4;
var 
gMoveSpeed 12;
var 
gMaxSwap = -999999999;
// und beim nächsten mal. alle MCs IMMER MITTIG AUFBAUEN !!!!!!!
var vNichtMittigX _root.figure.c3._x+_root.figure.c3._width-_root.figure.c1._x;
vNichtMittigX = (_root.figure.c1._width*gFigurFelderMax/100-vNichtMittigX)/2;
var 
vNichtMittigY _root.figure.c7._y+_root.figure.c7._height-_root.figure.c1._y;
var 
vNichtMittigY = (_root.figure.c1._height*gFigurFelderMax/100-vNichtMittigY)/2;
var 
gZentrumX _root.figure.c1._x-vNichtMittigX;
var 
gZentrumY _root.figure.c1._y-vNichtMittigY;
//
function fScaleFigurFeld() {
    if (
this.scale) {
        
// grösser werden
        
if (this._xscale<this.scaleMax) {
            
this._xscale += gScaleSpeed;
            
this._yscale += gScaleSpeed;
            
this._x += (gZentrumX-this._x)/gMoveSpeed;
            
this._y += (gZentrumY-this._y)/gMoveSpeed;
        } else {
            
//    scale fertig
            
this._xscale this.scaleMax;
            
this._yscale this.scaleMax;
            
this._x gZentrumX;
            
this._y gZentrumY;
            
// neuer min-wert !!!
            
this.scaleMin gFigurFelderMin;
            
// und weil nicht MITTIG :-(((((((((((((
            
this.x_org this.x_korr;
            
this.y_org this.y_korr;
            
delete this.onEnterFrame;
        }
    } else {
        
// kleiner werden
        
if (this._xscale>this.scaleMin) {
            
this._xscale -= gScaleSpeed;
            
this._yscale -= gScaleSpeed;
            
this._x += (this.x_org-this._x)/gMoveSpeed;
            
this._y += (this.y_org-this._y)/gMoveSpeed;
        } else {
            
//    scale fertig
            
this._xscale this.scaleMin;
            
this._yscale this.scaleMin;
            
this._x this.x_org;
            
this._y this.y_org;
            
delete this.onEnterFrame;
        }
    }
}
function 
fKlickInFigurFeld() {
    var 
vScale this.scale;
    
// alle kleiner machen
    
for (var vNr in gFigurFelderAry) {
        
gFigurFelderAry[vNr].scale false;
        
gFigurFelderAry[vNr].onEnterFrame fScaleFigurFeld;
    }
    
// den angeklickten: gegenteil von dem, was er gerade ist.
    
this.scale = !vScale;
    
this.swapDepths(gMaxSwap);
}
//
function fInitFigurFelder() {
    for (var 
vNr in gFigurFelderAry) {
        var 
vFF gFigurFelderAry[vNr];
        
// original daten merken
        
vFF.x_org vFF._x;
        
vFF.y_org vFF._y;
        
// anfangswerte setzen
        
vFF.scale false;
        
vFF.scaleMin gFigurFelderAnf;
        
vFF.scaleMax gFigurFelderMax;
        
// und weil nicht MITTIG :-(((((((((((((
        
vFF.x_korr vFF._x+vFF._width*(gFigurFelderAnf-gFigurFelderMin)/200;
        
vFF.y_korr vFF._y+vFF._height*(gFigurFelderAnf-gFigurFelderMin)/200;
        
// den feldern eine function zuweisen
        
vFF.onRelease fKlickInFigurFeld;
        
// oberstes feld
        
if (gMaxSwap<vFF.getDepth()) {
            
gMaxSwap vFF.getDepth();
        }
    }
}
//
fInitFigurFelder(); 
__________________
JuL!
JuL! ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 20:31 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele