| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| daaSeeker Registriert seit: Jul 2002
Beiträge: 171
| movieclips & "magnetische" abstoßung
Hallo, In meinem Flash-Film befinden sich mehrere movieclips. Diese lassen sich per drag&drop verschieben. Ich würde gerne realisieren, dass sich die mc's nicht berühren...d.h. unterschreitet ein mc einen definierten Mindestabstand, so soll er die anderen abstoßen. Meine action-script Kenntnisse sind leider nicht sehr gut, deshalb meine Frage, ob jemand vielleicht schon einmal ein ähnliches Problem hatte oder ein passendes Tutorial kennt (konnte leider keines finden)... |
| | |
| | #2 (permalink) |
| - Registriert seit: Jan 2004
Beiträge: 3.002
|
Quick & Dirty habe ich Dir das grad mal zusammengetippt: Einfach neue Datei und ins erste Frame kopieren. Wie gesagt quick&dirty, aber so haste schonmal nen Ansatz ![]() PHP-Code:
__________________ mfG, Robert Tutorials: [TUTORIAL] XML-Files in Flash einlesen+weiter verarbeiten Steuerung zwischen Zeitleisten & Movieclips [TUTORIAL] MP3-Player (+XML) [TUTORIAL] MP3-Player (+XML) Part II Geändert von pape (13-01-2008 um 20:26 Uhr) |
| | |
| | #3 (permalink) |
| daaSeeker Registriert seit: Jul 2002
Beiträge: 171
|
Hallo Robert, Vielen Dank für Dein Script! Wahnsinn!!!! ![]() Ganz so aufwendig hätte es jedoch gar nicht sein müssen, weil die mc's sind bereits auf der bühne vorhanden. Ich würde diese dann lediglich mit mc1, mc2 etc benennen... das hieße, man müßte gar keine mc's generieren... Ich habe versucht jetzt nur den unteren Teil deines Scripts zu verwenden: Code: function check_nachbarn(mc:MovieClip):Void
{
var tmp:MovieClip;
mitte_mc_x = mc._x+breite/2;
mitte_mc_y = mc._y+hoehe/2;
for(var i:Number = 0; i<anzahl; i++)
{
tmp = mc._parent["mc"+i];
if (tmp == mc || tmp == _root.curr_active) continue;
do {
mitte_tmp_x = tmp._x+breite/2;
mitte_tmp_y = tmp._y+hoehe/2;
abstands_vektor_x = mitte_mc_x-mitte_tmp_x;
abstands_vektor_y = mitte_mc_y-mitte_tmp_y;
abstand_laenge = Math.sqrt(abstands_vektor_x*abstands_vektor_x + abstands_vektor_y*abstands_vektor_y);
if (abstand_laenge<max_annaeherung)
{
tmp._x += tmp._x > mc._x ? 1: -1;
tmp._y += tmp._y > mc._y ? 1: -1;
}
} while (abstand_laenge<max_annaeherung);
}
}
function make_mc(w:Number, h:Number, tl:MovieClip, name:String):MovieClip
{
var tmp:MovieClip = tl.createEmptyMovieClip(name, tl.getNextHighestDepth());
tmp.beginFill(0xFF0000);
tmp.moveTo(0, 0);
tmp.lineTo(w, 0);
tmp.lineTo(w, h);
tmp.lineTo(0, h);
tmp.lineTo(0, 0);
tmp.endFill();
return tmp;
} Wäre Dir für einen weiteren Tip sehr dankbar |
| | |
| | #4 (permalink) |
| - Registriert seit: Jan 2004
Beiträge: 3.002
|
Hab Dir den Code mal kommentiert. Wie gesagt, ist er nicht sehr gut, sondern soll nur einen Ansatz darstellen. Einfach kopieren ist nicht ![]() Bischen Eigeninitiative musst Du schon mitbringen, denn ein Forum ist nicht dafür gedacht "wie geht das? - programmier mir das mal jemand!". ActionScript:
__________________ mfG, Robert Tutorials: [TUTORIAL] XML-Files in Flash einlesen+weiter verarbeiten Steuerung zwischen Zeitleisten & Movieclips [TUTORIAL] MP3-Player (+XML) [TUTORIAL] MP3-Player (+XML) Part II |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |