 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
01.03.2004, 19:59
|
#1
|
|
TP-Junior
Registriert seit: Feb 2004
Ort: Münster
|
Zufälliger MC!?
Hallöchen!
Ich habe mehrere MC mit einer festen Startposition auf meiner Bühne.
Wenn ich einen Button betätige werden alle MCs auf der Bühne verteilt - das klappt auch...
Allerdings soll immer zufällig einer der MCs an der Ausgangsposition bleiben.
In den MC habe ich jeweils die Startposition mit z.B.
_x = 10;
_y = 15;
(ist das so richtig?) angegeben ...
Welchen Befehl muß ich denn auf den Button legen, damit immer einer der Clips liegen bleibt?
Freue mich über einen Tipp! 
Lieben Gruß
Panicpixel
|
|
|
01.03.2004, 20:49
|
#2
|
|
TP-Moderator
Registriert seit: Mar 2002
|
Hallo
Die Frage ist, wei sprichst du die einzelnen MC`s an und wie verteilst du sie?
|
|
|
01.03.2004, 21:44
|
#3
|
|
TP-Junior
Registriert seit: Feb 2004
Ort: Münster
|
Hallo Wanderratte!
die MCs werden mit einem Button folgendermaßen verteilt:
on (press) {
rand = 100;
for (teil=1; teil<17; teil++) {
_root["a" add teil]._x = rand + random( (400- 2*rand) ); // wenn bühnenbreite 500
_root["a" add teil]._y = rand + random( (450 - 2*rand) ); // wenn bühnenhöhe 450 ist
}
}
Die MCs werden dann mit onClipEvent angesprochen, um sie z.b. zu draggen ...
Hast Du da ne nochmal ne Idee?
Lieben Gruß
Heike
|
|
|
01.03.2004, 21:59
|
#4
|
|
TP-Moderator
Registriert seit: Mar 2002
|
Also wenn ich dich richtig Verstanden habe willst du, dass einer von deinen MC`s zufällig auf dem Ausgangspunkt stehen bleibt.
Dann versuche es mal so
on (press) {
zuF=random(17);
rand = 100;
for (teil=1; teil<17; teil) {
if(zuf != teil++){
_root["a" add teil]._x = rand + random( (400- 2*rand) ); // wenn bühnenbreite 500
_root["a" add teil]._y = rand + random( (450 - 2*rand) ); // wenn bühnenhöhe 450 ist
}
}
}
Also kurz zur Erklärung. Der Var zuF wird ein Zufallswert zwischen 0 und 16 zugewiesen. Innerhalb deine Schleife, wird eine if abfrage durchlaufen, solange der Wert der Variable zuF ungleich des Wertes von der Var teil ist, wird der Code ausgeführt und dein MC verschoben. Sobald aber die Werte gleich sind, wird der Code nicht ausgeführt und der MC bleibt, wo er ist.
Geändert von Wanderratte (01.03.2004 um 22:19 Uhr).
|
|
|
02.03.2004, 13:09
|
#5
|
|
TP-Junior
Registriert seit: Feb 2004
Ort: Münster
|
Hey Wanderratte!
Vielen Dank !!
Du hast mir sehr geholfen!!!
Lieben Gruß
Panicpixel
|
|
|
02.03.2004, 14:01
|
#6
|
|
TP-Junior
Registriert seit: Feb 2004
Ort: Münster
|
Hallo Wanderratte!
Ähem - ich hätte da doch noch eine Frage... *hüstel*
Kann ich meinem MC, der jetzt zufällig auf der Bühne liegen bleibt auch noch sagen, dass er dann alle onClipEvent-Anweisungen nicht mehr ausfüren soll? Also, dass er dann z.B. auch nicht mehr bewegt werden darf etc. ...
Meine Versuche scheitern alle kläglich ...
Lieben Gruß
Panicpixel
|
|
|
02.03.2004, 18:11
|
#7
|
|
TP-Moderator
Registriert seit: Mar 2002
|
Ich habe jetzt nicht getestet, aber das müßte so gehen.
on (press) {
zuF=random(17);
rand = 100;
for (teil=1; teil<17; teil++) {
if(zuf != teil){
_root["a" add teil]._x = rand + random( (400- 2*rand) ); // wenn bühnenbreite 500
_root["a" add teil]._y = rand + random( (450 - 2*rand) ); // wenn bühnenhöhe 450 ist
_root["a" add teil].pruef = true;
}
if(zuf == teil)
{
_root["a" add teil].pruef = false
}
}
und auf deinen Button
on(release)
{
if(pruef == true){
deine Anweisung;
}
Geändert von Wanderratte (08.03.2004 um 22:37 Uhr).
|
|
|
09.03.2004, 10:22
|
#8
|
|
TP-Junior
Registriert seit: Feb 2004
Ort: Münster
|
Hallo!
Sorry, den Beitrag hatte ich total verbaselt...
Da tüftel ich seit Tagen rum, und Dein Tipp war ganz gut ...
Allerdings klappt das manchmal und manchmal nicht. Also der MC an der Startposition ist nicht mehr dragbar -super!!!
Allerdings lassen sich manchmal dann unterschiedliche Clips, die gemischt wurden auch nicht mehr ziehen.
Hab ich da falsche Zuweisungen gemacht oder eine Abfrage vergessen?
Das steht auf meinem Clips:
onClipEvent (load) {
dragged==false;
}
onClipEvent (mouseDown) {
if(pruef == false){
stopDrag();}
if (this.hitTest (_root._xmouse, _root._ymouse, true)) {
if (pruef == true){
this.startDrag (false);
dragged=true;
}
}
}
dann die onClipEvent (mouseUp) -Befehle...
Hoffe Du bist nicht zu verärgert wegen meines doppelten Postings und könntest nochmal helfen?
Das wäre so super!!!
Lieben Gruß + schönen Tag! 
|
|
|
09.03.2004, 10:35
|
#9
|
|
TP-Moderator
Registriert seit: Mar 2002
|
Zitat:
Original geschrieben von Panicpixel
Hoffe Du bist nicht zu verärgert wegen meines doppelten Postings und könntest nochmal helfen?
Das wäre so super!!!
Lieben Gruß + schönen Tag!
|
Darum mache dir mal keine Sorgen, so schnell laß ich mich nicht ärgern. Ich haue kurz auf dem Tisch und dann ist die Sache in der Regel für mich gegessen. Fehler machen halt alle mal
So nu zu deinem Problem, auf dem ersten Blick kann ich keinen Fehler sehen ausser hier in dem Bereich, da verwendest du zwei Gleichheitszeichen. Dann ist es keine zuweisung mehr. Also nimm eins mal weg 
onClipEvent (load) {
dragged=false;
}
Ich hoffe das war es. Wenn nicht poste bitte einmal deinen ganzen Code hier und nimm dafür oben den Button php. Dann ist der Code übersichtlicher 
|
|
|
09.03.2004, 11:21
|
#10
|
|
TP-Junior
Registriert seit: Feb 2004
Ort: Münster
|
Ach, das wäre schön gewesen, wenn das nur das übersehene Gleichheitszeichen gewesen wäre ... War´s aber nicht!?
Komisch finde ich ja auch, dass es manchmal geht und manchmal nicht ....
Hier nochmal der Code, der auf den MCs liegt
PHP-Code:
onClipEvent (load) {
dragged=false;
}
onClipEvent (mouseDown) {
if(pruef == false){
stopDrag();
}
if (this.hitTest (_root._xmouse, _root._ymouse, true)) {
if (pruef == true){
this.startDrag (false);
dragged=true;
}
}
}
onClipEvent (mouseUp) {
if(this.hitTest(_root._xmouse, _root._ymouse, true)){
if (dragged==true){
stopDrag ();
if (this.hitTest (_root.treffer)) {
setProperty("", _x, "509");
setProperty("", _y, "114");
_root.nextFrame();
} else {
if (this._x >= 366 && this._x <= 679 && this._y >= 36 && this._y <= 405){
this._x=76
this._y=44
_root.falsch.gotoAndPlay(2);
}
}
dragged=false;
}
}
}
und mein Mischbefehl:
PHP-Code:
stop();
zuF=random(16)+1;
rand = 100;
for (teil=1; teil<17; teil) {
if(zuf != teil++){
_root["a" add teil]._x = rand + random( (400- 2*rand) );
_root["a" add teil]._y = rand + random( (450 - 2*rand) );
_root["a" add teil].pruef = true;
}
if(zuf == teil)
{
_root["a" add teil].pruef = false
}
}
Tja und nun!? Verdammt.
Fällt Dir da´n fehler auf?
Gruß Panicpixel
|
|
|
09.03.2004, 12:05
|
#11
|
|
TP-Moderator
Registriert seit: Mar 2002
|
So kann ich auch keinen Fehler entdecken.
In deinen Aufruf ist ein kleiner Fehler drin, der mir aber Unterlaufen ist
PHP-Code:
stop();
zuF=random(17);
rand = 100;
for (teil=1; teil<17; teil++) {
if(zuf != teil){
_root["a" add teil]._x = rand + random( (400- 2*rand) );
_root["a" add teil]._y = rand + random( (450 - 2*rand) );
_root["a" add teil].pruef = true;
}
if(zuf == teil)
{
_root["a" add teil].pruef = false
}
}
Das dürfte zwar nicht zu deinem Problem führen, aber der Vollstädigkeitshalber habe ich ihn jetzt ausgebessert.
So und nun kommt ein Versuch.
Also diesen Code brauchst du nicht
PHP-Code:
onClipEvent (load) {
dragged=false;
}
und hier änderst du ihn folgendermaßen ab.
PHP-Code:
onClipEvent (mouseUp) {
if(this.hitTest(_root._xmouse, _root._ymouse, true)){
if (pruef==true){
this.stopDrag ();
if (this.hitTest (_root.treffer)) {
setProperty("", _x, "509");
setProperty("", _y, "114");
_root.nextFrame();
} else {
if (this._x >= 366 && this._x <= 679 && this._y >= 36 && this._y <= 405){
this._x=76
this._y=44
_root.falsch.gotoAndPlay(2);
}
}
}
}
}
Falls es immer noch nicht ist, dann bleibt dir nichts anderes übrig als alle Abfragen mit dem Befehl trace zu überprüfen. Irgendwo wird dann eine Variable nicht richtig übergeben.
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 13:10 Uhr.
|
 |