MC's in MC's in MC's....

Fey

Erfahrenes Mitglied
Hallo zusammen,

also, ich habe ein Problem. Dieses zu schildern ist nicht wirklich einfach. Ich versuche es trotzdem mal.

Ich muss hier eine "Animation" zum Thema Umsatzsteuer machen. Nicht, dass das Thema blöd genug wäre, die "Animation" ist irgendwie so kompliziert geworden, dass ich jetzt an meine Grenzen stoße. Das Ganze beinhaltet auch ein Drag'n Drop Movie. Und genau da hakt es.

Ich habe zwei Movieclips auf meiner Ebene liegen. In dem einen sind Erklärungstexte drinne. Diese sind auch wieder Movieclips, weil je nachdem ob Du was Online oder Offline verkaufst ein anderes Umsatzsteuergesetz...blibla anfällt. In dem Movieclip kannst Du zwischen online und offline wechseln. Funktioniert alles wunderbar. Jetzt kommt das Drag'nDrop-Movie ins Spiel. In dem liegen wieder zwei Sachen. Einmal ein P für Produkt (Online) und einmal ein D für Dienstleistung (Offline). Jetzt soll, je nachdem ob ich mich in Online oder Offline befinde, von D zu P und umgekehrt springen. Funktioniert auch. Sodala...dass das Ding ein Drag'nDrop Movie ist hat auch einen Sinn. Und zwar kann man das Teil auf einer "Landkarte" rumschieben und je nach Gebiet erscheint unten ein anderer Text, der ja wie oben schon beschrieben in einem anderen Movieclip wiederum in einem Movieclip liegt. Und je nachdem auf welchem Land der Drag'nDropButton grad ist soll der entsprechende Text aufkreuzen. Aber auch je nachdem ob online oder offline.

Lange Rede, kurzer Sinn: Hier meine Frage:

Wie sag ich dem jeweiligen Drag'nDropButton in dem Movieclip, dass er in einem anderen Movieclip auf _root in einen weiteren Movieclip in einen bestimmten Frame springen soll.

Im Moment ist das ganze mit der Flash4 Syntax gelöst, weil ich irgendwie zu blöd war, die Drag'nDrop-Geschichte mit neuer Syntax zu lösen und sich alte und neue ziemlich in die Haare gekriegt haben.

Für alle die jetzt ganz gebannt vorm Monitor sitzen und sich denken: "Häääää? Was will die von uns. Ich möchte ihr zwar gerne helfen, aber ich verstehe nicht, was sie meint." habe ich die Flashdatei mal angehängt, damit ihr vielleicht eher versteht was ich will.

Ich schaue jetzt mal verzweifelnd hilfesuchen unsere Flashspezies an und hoffe auf Hilfe. :)

Liebe Grüße,
Fey


Achso...fragt mich nicht warum das Ding im Moment so groß ist. Ich habe keine Ahnung.

Flash Datei
 
also, ich weiß nicht wie weit ich noch davon entfernt bin zu verstehen was du meinst, aber ich kann ja mal schonmal ein paar allgemeine hinweise abgeben:
Wie sag ich dem jeweiligen Drag'nDropButton in dem Movieclip, dass er in einem anderen Movieclip auf _root in einen weiteren Movieclip in einen bestimmten Frame springen soll.
das würd ich mit hitTest machen. hitTest ist zwar je nach häufigkeit der verwendung ein wenig prozessorbelastend, aber ich denke bei deinem fall dürfte das kein problem sein.

also im prinzip guckst du ob ein hittest (kollision) true ist, und wenn ja, soll der mc mit dem text drin an die entsprechende szene springen.
dafür muß man natürlich auch (am besten unsichtbare) mcs haben die dann gegebenenfalls mit dem drag&drop-ding kollidieren.

also angenommen du machst einen mc in dem lediglich ein unsichtbarer kasten drin ist, und den packst du auf oder unter die schweiz.
den mc nennt man mal sinnigerweise "schweiz".

so könnte man dann rausfinden ob das drag&drop-ding über der schweiz ist:
man gibt den drag&drop-ding folgendes als object-action(außerhalb des symbols einmal anklicken und das ins actionsfenster schreiben:
PHP:
onclipevent(enterframe){
if(this.hitTest(_root.schweiz)){
//das ding ist über der schweiz
}
}
soweit das du rausfindest ob das ddding irgendwo drüber ist bist du ja auch schon, dein problem (sofern ich das richtig verstanden habe) war ja das je nach dem was für ein land und ob offline oder online ein anderer text erscheinen soll.
das kann man erreichen indem man einfach mehrere if-schleifen kombiniert und die information die verabeitet werden müssen in variabeln speichert.
sowas ähnliches hast du glaub ich bei dem on-/offline versucht, aber es sah mir ein wenig spanisch aus...
also angenommen man hätte am anfang ein variabel die sagt
_root.online = true;
sofern man auf offline klickt, setzt der knopf sie dann wieder auf false:
_root.online = false;

dann könnte man das bin-ich-über-der-schweiz mit einem bin-ich-gerade-on-oder-offline verknüpfen.
also so in der art:
PHP:
onclipevent(enterframe){
if(this.hitTest(_root.schweiz)){
//das ding ist über der schweiz
if(_root.online){
//über der schweiz & online
}
}

ein kleines wenig konkreter dürfte das in deinem fall in etwa so gehen:
PHP:
onclipevent(enterframe){
if(this.hitTest(_root.schweiz)){
_root.erläuterung.gotoandplay("drittland");
if(_root.online){
_root.erläuterung.drittland.gotoandplay("drittlandon");
}else{
_root.erläuterung.drittland.gotoandplay("drittlandoff");
}
}

ahhhh!!! jetzt weiß ich auch wo dein problem ist.
die aktionen das _root.erläuterung nach "drittland" geht und das _root.erläuterung.drittland nach "drittlandon" geht passieren ja eigentlich gleichzeitig.
allerdings ist solange _root.erläuterung noch nicht nach "drittland" gegangen ist noch gar kein mc namens _root.erläuterung.drittland. da da der im 1. frame noch nicht da ist.

fazitmäßig hast du dich ein wenig verknotet mit den mcs, hättest du alles(alle möglichen erläuterungsfälle) in erläuterung gelassen und keine untermcs gebaut, wär das kein problem gewesen.

man kann die sache noch relativ kompliziert lösen in dem man eine zeitverzögerung einbaut. so das erst _root.erläuterung nach "drittland" geht und dann ein paar frames später wenn auch sicher ist das erläuterung schon da ist, _root.erläuterung.drittland auf den weg geschickt wird.

ich hoffe du kannst hier noch ansatzweise durchsteigen, ist ein wenig ungünstig das die mcs und die labels gleich heißen...

also so würde das ganze mit ner zeitverzögerung gehen, aber im grundegenommen könnte man das ganze eigentlich nochmal neu bauen...:

PHP:
onclipevent(load){
_root.x=1;
}
onclipevent(enterframe){
if(this.hitTest(_root.schweiz)){
_root.erläuterung.gotoandplay("drittland");
if(_root.x==4){
if(_root.online){
_root.erläuterung.drittland.gotoandplay("drittlandon");
_root.x=1;
}else{
_root.erläuterung.drittland.gotoandplay("drittlandoff");
_root.x=1;
}
}
_root.x++;
}

so würde nur jeden vierten frame geguckt ob online oder offline und dann dementsprechend der text zugewiesen. damit das auge das nicht mitbekommt das machmal 4 frames später der text nocheinmal korrigiert wird sollte man die framerate ein wenig hochstellen. so auf 50 oder so müsste reichen.

keine ahnung ob dich das jetzt nur verwirrt oder geholfen hat, aber ich bin mir ziemlich sicher das es daran gelegen hat.
 
Zurück