Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 8

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-05-2007, 12:43   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2007
Beiträge: 185
Question Variable – merke _x, _y vor _x,yscale.

Bevor ein Movieclip vergrößert wird (_x,yscale), soll jedes Mal seine Position abgefragt und in einer Variable gespeichert werden.

Kann mir jemand dabei helfen?!

z.B. ich vergrößere ihn auf 105%, danach verschiebe ich ihn, jetzt soll die neue Position gespeichert werden, danach vergrößere ich ihn auf 110% und auch dann soll die Position in der Variable gespeichert werden!
Sebastiankorf ist offline   Mit Zitat antworten
Alt 22-05-2007, 14:04   #2 (permalink)
dreizeiler
 
Benutzerbild von mojave
 
Registriert seit: Sep 2004
Ort: Berlin
Beiträge: 1.411
?????

du willst mehrere positionen speichern und sie alle wieder abrufbar machen?

dann natürlich mit einem array... oder noch besser für x-beliebige anzahl an mc's :

PHP-Code:
var saveObject:Object = new Object();

function 
savePosition(mc:MovieClip) {
    if (
saveObject[mc] == undefined) {
        
saveObject[mc] = new Object();
        
saveObject[mc].positions = new Array();
        
    }
    
saveObject[mc].positions.push([mc._xmc._xscale]);
}

function 
getPositions(mc:MovieClip):Array
{
        return 
saveObject[mc].positions;
}



var 
mc:MovieClip createEmptyMovieClip('hans',1);
mc._x 20;
savePosition(mc);
mc._x 0;
savePosition(mc);
mc._x 50;
savePosition(mc);

trace(getPositions(mc)); 
mojave ist offline   Mit Zitat antworten
Alt 23-05-2007, 12:11   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2007
Beiträge: 185
Ich habe einen schieberegler zum vergrößern ( _scale ) eines Movieclips programmiert. Gleichzeitig bewegt der schieberegler den MC so, dass der punkt des MC’s der vor dem zoom in der mitte der Bühne lag dort auch bleibt.
Das klappt auch perfekt

Das Problem:
Ich kann mit anderen buttons diesen MC nicht mehr bewegen.
Das liegt unter anderem an der bedingung: _root.qay._x = ursprung;
sie sagt aus, er soll da bleiben, wo er in nicht vergrößertem zustand war.
Wenn ich sie nicht angebe dann haut der MC aus irgendwelchen gründen nach dem scalen ab.
Aber auch daran:
if (_root.qay._yscale<101 && _root.qay._yscale>99) { //anstatt dieser
// bedingung müßte es heißen: gilt jedes Mal vor dem Skalieren



Im anhang meine beispieldatei.


Script der im Schieberegler angehängt ist:

top = vol._y-100;
left = vol._x;
right = vol._x;
bottom = vol._y;
//
vol.onPress = function() {
startDrag("vol", false, left, top, right, bottom);
dragging = true;
};
vol.onRelease = function() {
stopDrag();
dragging = false;
};
vol.onReleaseOutside = function() {
stopDrag();
dragging = false;
};
//
this.onEnterFrame = function() {
if (dragging) {
_root.qay._xscale = 100-(vol._y-bottom);//skalieren
_root.qay._yscale = 100-(vol._y-bottom);//skalieren
} else {
if (_xscale>100, _yscale>100) {
_xscale = 100;
_yscale = 100;
} else if (_xscale<0, _yscale<0) {
_xscale = 0;
_yscale = 0;
}
}
_root.qay.onEnterFrame = function() {
if (_root.qay._xscale<101 && _root.qay._xscale>99) {
_root.qay._x = ursprung; //variablen für die ausgleichsbewegung
ursprung = _root.qay._x; //variablen für die ausgleichsbewegung
differenz = 275-ursprung; //variablen für die ausgleichsbewegung
}
if (_root.qay._yscale<101 && _root.qay._yscale>99) { //anstatt dieser
// bedingung müßte es heißen: gilt jedes Mal vor dem Skalieren
_root.qay._y = ursprung_y; //variablen für die ausgleichsbewegung
ursprung_y = _root.qay._y; //variablen für die ausgleichsbewegung
differenz_y = 180-ursprung_y; //variablen für die ausgleichsbewegung
}
positiv = differenz*_root.qay._xscale/100; //variablen für die ausgleichsbewegung
restwert = positiv-differenz; //variablen für die ausgleichsbewegung
punkt = ursprung-restwert; //variablen für die ausgleichsbewegung
//
positiv_y = differenz_y*_root.qay._yscale/100; //variablen für die ausgleichsbewegung
restwert_y = positiv_y-differenz_y; //variablen für die ausgleichsbewegung
punkt_y = ursprung_y-restwert_y; //variablen für die ausgleichsbewegung
_root.qay._x = punkt; //ausgleichsbewegung
_root.qay._y = punkt_y; //ausgleichsbewegung
};
};
Sebastiankorf ist offline   Mit Zitat antworten
Alt 23-05-2007, 12:15   #4 (permalink)
Neuer User
 
Registriert seit: Apr 2007
Beiträge: 185
anhang vergessen
Angehängte Dateien
Dateityp: zip schieberegler.zip (7,4 KB, 12x aufgerufen)
Sebastiankorf 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 18:07 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele