Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-11-2005, 10:03   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 4
Linien nach xy.onRelease neu zeichnen

Hallo,

ich verbinde Rechtecke mit Linien. Die Rechtecke (mc_source, mc_traget) kann man verschieben, die Linien sollen nach (oder noch besser: während!) dem draggen neu gezeichnet werden.

Hier mein Code:
Code:
//das Rechteck, mc_target analog:
var mc_source:MovieClip = _root.createEmptyMovieClip("Start",_root.getNextHighestDepth());
		with (mc_source) {
			lineStyle(0, 0x000000, 100);
			beginFill(clr);
			lineTo(20,0);
			lineTo(20,20);
			lineTo(0,20); 
			lineTo(0,0);
			endFill();
		}

//für's draggen:
mc_source.onPress = function() {
   		mc_source.startDrag();
		};
		
mc_source.onRelease = function() {
   		mc_source.stopDrag();
		};
//Linien:

with(_root){
     lineStyle(0, 0x000000, 100);
     moveTo(mc_source._x,mc_source._y);
     lineTo(mc_target._x, mc_target._y);
}
Derzeit ist das ja noch statisch - wie kann ich realisieren, dass die Linien nach jedem Draggen neu gezeichnet werden?

Danke

Geändert von cali11 (14-11-2005 um 10:05 Uhr)
cali11 ist offline   Mit Zitat antworten
Alt 14-11-2005, 10:28   #2 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Am besten du erstellst für den Vorgang des Malens eine Funktion.
Bei onPress weist du dann diese Funktion dem onEnterFrame eines MovieClips zu, bei onRelease rufst du sie ein letztes mal auf, und löscht dann mit delete das onEnterFrame.

Also in etwa:
PHP-Code:
container.draw = function() {
this.clear();
this.lineStyle(..)
this.moveTo..
this.lineTo...
};

mc1.onPress = function() {
this.startDrag(true);
_root.container.onEnterFrame _root.container.draw;
};

mc1.onRelease = function() {
this.stopDrag();
_root.container.draw();
delete _root.container.onEnterFrame;
};

// das gleiche auf für die anderen verschiebbaren MCs 
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 14-11-2005, 10:33   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2002
Beiträge: 597
zeichnet jedesmal wenn released wird:

PHP-Code:

_root
.mc_source.onPress = function() {
    
this.startDrag();
    
}

_root.mc_source.onRelease = function() {
    
this.stopDrag();
    
lineStyle(00x000000100);
    
moveTo(mc_source._x,mc_source._y);
    
lineTo(mc_target._xmc_target._y);
}

_root.mc_target.onPress = function() {
    
this.startDrag();
    
}

_root.mc_target.onRelease = function() {
    
this.stopDrag();
    
lineStyle(00x000000100);
    
moveTo(mc_source._x,mc_source._y);
    
lineTo(mc_target._xmc_target._y);

Randy ist offline   Mit Zitat antworten
Alt 14-11-2005, 10:52   #4 (permalink)
Neuer User
 
Registriert seit: Nov 2002
Beiträge: 597
Hab mal das von Janoscharlipp ein bisschen geändert:

PHP-Code:
function draw():Void {
this.clear();
this.lineStyle(00x000000100);
this.moveTo(mc_source._x,mc_source._y);
this.lineTo(mc_target._xmc_target._y);
};
_root.onEnterFrame = function():Void {
    
draw()
    
delete this.onEnterFrame;
}
mc_source.onPress = function():Void {
    
this.startDrag();
    
_root.onEnterFrame = function():Void {
        
draw();
        }
};

mc_source.onRelease = function():Void {
    
this.stopDrag();
    
_root.draw();
};
mc_target.onPress = function():Void {
    
this.startDrag();
    
_root.onEnterFrame = function():Void {
        
draw();
    }
};
mc_target.onRelease = function():Void {
    
this.stopDrag();
    
_root.draw();
}; 
PS: Andre hat da mal ne cable Klasse geschrieben, die war noch ein paar Klassen besser. Such mal nach der.

Geändert von Randy (14-11-2005 um 10:54 Uhr)
Randy ist offline   Mit Zitat antworten
Alt 14-11-2005, 11:41   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 4
Super, danke, hat jetzt gut geklappt.
cali11 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 19:35 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele