Actionscript-Profis gefragt

Snyper

New member
Hallo zusammen

Dies ist ein Aufruf an alle Actionscript-Helden. Bitte helft mir bei meiner Frage:

Also.
Ich habe eine Grafik einer Schulklasse. Bei mouseover auf den Kopf soll bei jeder Person am unteren Bildrand ein anderer Spruch erscheinen.
Ich generiere also einen unsichtbaren Button und nimm diesen auf jeden Kopf auf der Bühne.
Ganz unten wo der Text erscheinen soll, füge ich dynamischen Text ein.
Natürlich will ich nicht für jede Personen eine eigene Grafik mit dem Spruch machen.

IST ES MÖGLICH:

dass ich jedem Button auf der Bühne einen Instanzenname vergeben, und den Spruchmovieclip folgendermassen generiere:

z.B.

der Button bei einer Person hat den Instanzennamen [Person1]

der dynamische Text sollte etwa so aussehen:

if [Person1] mouseover dann dynamischer Text = "...."

Ich hoffe, meine Problemschilderung ist klar.

Vielen Dank für Eure hilfe.
 
hmm also so schwierig is des ned....
ich würde das über ein Array lösen... schliesslich ist es ja nur Text:
arrTexte = new Array;
arrTexte [0] = "Text 1";
arrTexte [1] = "Text 2";
...
...
(das Array kann man auch anders initialisieren, aber darum geht es nicht primär)
dann eine Funktion:
this.showText = function (nIndex)
{
dynTextFeld = arrTexte [nIndex];
}

Array und Funktion z.B. auf die Bühne (Hauptzeitleiste == _root) legen

in den einzelnen onMouseEvent(RollOver):
_root.showText (x);
aufrufen, wobei x dem Index im Array entspricht und für jeden Button unterscheidlich ist. Fertig!
 
noch leichter...

...und ohne actionscriptgefummel gehts auch...

vorausgesetzt, du musst es nicht täglich aktualisieren usw. dann kannst du hier aufhören zu lesen...

aber ganz generell lassen sich solceh mouse-overs mit normalen buttons machen...
-speicherst jeden kopf als tasten-symbol ab
-gehst dirket aus der szene auf die buttons, damit du die positionen hast und fügst im "over" einfach den entsprechenden text an der passenden stelle ein
-und im "aktiv" ziehst du ne fläche nur über den jeweiligen kopf und löscht die textebebene..sonst hast du da immer kuddelmuddel wenn die maus zufällig in den "aktiv"-bereich reingeht...

ist easy und schnell

und wenn mich jetz einer fummler nennt is mir dat doch wurscht :) :)

acid
 
Albu schrieb:
hmm also so schwierig is des ned....
ich würde das über ein Array lösen... schliesslich ist es ja nur Text:
arrTexte = new Array;
arrTexte [0] = "Text 1";
arrTexte [1] = "Text 2";
...
...
(das Array kann man auch anders initialisieren, aber darum geht es nicht primär)
dann eine Funktion:
this.showText = function (nIndex)
{
dynTextFeld = arrTexte [nIndex];
}

Array und Funktion z.B. auf die Bühne (Hauptzeitleiste == _root) legen

in den einzelnen onMouseEvent(RollOver):
_root.showText (x);
aufrufen, wobei x dem Index im Array entspricht und für jeden Button unterscheidlich ist. Fertig!

Hi

Also ich hab mich an das gehalten.

Mein dynamischer Text hat die Variable x.

Der Code sieht so aus:

arrTexte = new Array;
arrTexte [0] = "Text 1";
arrTexte [1] = "Text 2";

und der vom button:

on(rollOver, dragOver){
x = arrTexte[1];
}

das funktioniert auch wunderbar so.
den dynamischen text hab ich ja unterhalb des bildes. nun habe ich aber den dynamischen text in einen movieclip verschachtelt und ihn noch zu animieren.
dann geht das script nicht mehr weil x nicht mehr generiert wird. wie kann ich das machen, dass der dynamische text innerhalb des movieclips auf das actionscript in der hauptzeitleiste zurückgreift??
 
Also das direkte Setzen des Textes aus den Buttons heraus hätte ich nicht gemacht (deswegen meine Funktion), denn wenn Du eine Änderung am dynText hast, dann änderst Du mit Funktion nur eine Stelle, ohne n Stellen!

Nichtsdestotrotz ist die Lösung in beiden Fällen die gleiche, in Deinem Fall ist sie halt umständlicher umzusetzen:
statt x nimmst Du einfache mcX.x wobei mcX der Name des MovieClips ist, der x enthält. D.h. Du mußt jetzt alle Buttons nochmal anfassen....
 
bau ein _root ein

ansonsten schau mal in meine letzte frage: frames aus symbolen ansteuern...
da war im grunde das gleiche problem, und da steht auch ganz unten ein script...

schönen abend

acid
 
Zurück
Oben