Antworten auf deine Fragen:
Neues Thema erstellen

Zufällige Position des Textes

chris_90

Immer gut drauf.

Schönen guten Abend,

derzeit komme ich aus dem Photoshop Forum mal hier rüber.
Mein Problem ist folgendes:

Ich habe eine Flash Datei mit AS2 angelegt. Dann habe ich einen Countdown (mit Hilfe eines dyn. Textfeldes und Vergebung eines Instanznamens) erfolgreich angelegt. Im Textfeld des Countdowns soll über dem eigentlichen Wert noch ein Text stehen. Hier ein Beispiel:

Es dauert noch...
2 Tage, 19 Stunden, 14 Minuten, 22 Sekunden.

Das habe ich bisher mit einem zweiten Textfeld gelöst. Das funktioniert natürlich im stehenden Zustand ganz wunderbar, allerdings soll der Text nur alle X Sekunden erscheinen, und das immer an einer (möglichst) zufälligen Position innerhalb des Rahmens. Nach X Sekunden soll er dann wieder dahinschwinden.

Meine Idee war, beide Textfelder zu einem MovieClip zu verbinden, und den gesamten MovieClip zufällig anzuzeigen. Allerdings wird mir in diesem Fall der Countdown nicht mehr angzeigt, nur noch das obere Textfeld.

Könnt ihr mir an der Stelle weiterhelfen?
Ich nutze Flash CS4/AS2.

Zur Erklärung
Das Ganze ist ein kleiner Teil eines gesamten kleinen Projektes, bei dem Gegenstände - ebenflass in gewissem Rahmen zufällig - von links nach rechts durch das Bild fliegen sollen, wobei diese Animation alle X Sekunden angehalten wird, der Countdown erscheint, und es dann weitergeht! Leider habe ich aber noch keine große Erfahrung mit Flash AS2, deshalbsuche ich bei euch nach wertvollen Tipps.

Danke!
Chris
 

A

ad86

Guest

AW: Zufällige Position des Textes

Hi,

hat Dein Movieclip einen Namen? Stimmen die Pfade?
Wenn Du keinen Namen für den MC hast, wie soll Flash wissen, welchen Text Du editieren willst?
Das dynamische Textfeld ist im MovieClip, also müsstest Du erst auf den MovieClip greifen und dann auf dein dynamisches Textfeld.

Mehr kann ich erstmal nicht dazu sagen, da ich kein AS2, nur AS3 kann.

Mfg ad86
 

chris_90

Immer gut drauf.

AW: Zufällige Position des Textes

Hallo Nachtwandler,

wie ihr seht sind ein paar Tage seit dem Erstellen des Threads vergangen und ich habe immer noch Probleme. Mit den "fliegenden Objekten" komme ich allerdings langsam voran, da geht schon was...

Mein aktuelles Sorgenkind ist ein Countdown. Mein Countdown soll nur alle paar Sekunden zu sehen sein. Um das zu erreichen, muss ich ihn zu einem MovieClip verändern. Derzeit sieht mein Aufbau folgendermaßen aus:

Ebene 1 mit Code. Das Ergebnis ist "countdown.text".
Ebene 2 mit Textfeld. Hier habe ich ein dynamisches Textfeld mit Instanznamen "countdown". Das funktioniert wunderbar.
Ändere ich das dynamische Textfeld in einen MC, so wird mir der Countdown später nicht mehr angezeigt.

Dem Movieclip habe ich bei der Umwandlung ebenfalls den Namen "countdown" gegeben.

Ich habe schon einiges darüber gelesen, wie man externe Texte einbindet, aber ich komme einfach nicht klar...

Vielleicht kann mir ja jemand etwas Rückenwind verschaffen.

lg
Chris
 
Zuletzt bearbeitet:
A

ad86

Guest

AW: Zufällige Position des Textes

Hi Chris,

Ich kann zwar kein AS2 (nur AS3:D),
aber probier mal folgendes:

Code:
// Variable ob Text sichtbar ist oder nicht
var showing:Boolean=true;

function showText(){
	showing=!showing;
	if (showing){
		countdown_txt._visible=true;//Text soll sichtbar sein
		var pX:Number=random(500);//Zufallsewert for X
		var pY:Number=random(300);//Zufallsewert for Y
		countdown_txt._x=pX;
		countdown_txt._y=pY;
		countdown_txt.text="Es dauert noch...\n"+"DEin TimeradH";//Dein Text (Es sind noch...) und danach Deine aktuelle Zeit, die Du berechnet hast
		countdown_txt._width=countdown_txt.textWidth+5;//Breite des Textfeldes soll genauso breit sein wie der Text (eventuell kannst Du +5 weglassen, aber bei mir war immer etwas abgeschnitten
		countdown_txt._height=countdown_txt.textHeight*2;
	}
	else{
		countdown_txt._visible=false;//Text ist nicht sichtbar
	}
}

//rufe alle 1000 Millisekunden (==1 SEkunde) die Funktion showText auf
setInterval(showText,1000);

Auf der Bühne ist nur "countdown_txt" ein dyn. Textfeld. Ich gebe keine Gewähr, dass es nicht auch anders geht, oder darin keine Fehler sind. Du musst auch Deine Berechnung selber einfügen.

Mfg ad86
 

chris_90

Immer gut drauf.

AW: Zufällige Position des Textes

Hallo ad86,

danke für die Hilfe. Ich habe es gerade ausprobiert, da hat es begrenzt funktioniert. Ich werde es heute im Laufe des Tages noch einmal testen.

lg
Chris
 

chris_90

Immer gut drauf.

AW: Zufällige Position des Textes

Hallo,

ich habe es irgendwie geschafft, jede Menge Dinge aneinanderzureihen. Herausgekommen ist, dass das Bild alle X Frames stehen bleibt und ein Text erscheint - perfekt.

Jetzt muss der Text nur noch dynamisch werden. Bis jetzt steht in dem dynamischen Textfeld "countdown_txt" nur ein Testwort. Dieses verändert sich allerdings nicht, obwohl ich es ihm sage.

Mal ein wenig Code, vielleicht versteht ihr dann mein Problem, oder noch besser, kennt eine Lösung/seht den Fehler.

Countdown, Layer 1: Bild 1:
Code:
stop();
Countdown, Layer 1: Bild 2:
Code:
var VarCountdown = countdown_txt.text;
function showText()
{
// Die Zufallsparameter habe ich hier einmal der Übersicht zuliebe gekürzt
countdown_txt.text="Verbleibende Zeit...\n"+ countdown.text;
countdown_txt._width=countdown_txt.textWidth+5;
countdown_txt._height=countdown_txt.textHeight*2;
}
Countdown, Layer 1: Bild 3:
Code:
_parent.toggleFreeze();

Die Variable VarCountdown habe ich mit "_global.VarCountdown" im Variablenfeld der "countdown_txt" zugewiesen.

Danke im Vorhinein!

lg
Chris
 
A

ad86

Guest

AW: Zufällige Position des Textes

Hi chris_90,

Countdown, Layer 1: Bild 3:
Code:
_parent.toggleFreeze();
Die Variable VarCountdown habe ich mit "_global.VarCountdown" im Variablenfeld der "countdown_txt" zugewiesen.

Keine Ahnung was Du damit meinst, bin aber ja auch kein AS2-Profi:D. (jemand der AS2 kann, weiß sicher was toggleFreeze ist, und der Satz danach in AS2 heißen mag.)

Ich hab gerade nochmal meinen Sourcecode editiert und ausprobiert und er funktioniert (unter CS4):
Code:
// Variable ob Text sichtbar ist oder nicht
var showing:Boolean=true;
var min:Number=100;
var hour:Number=100;
var sec:Number=60;
var counter:String="100 Stunden, 100 Minuten, 60 Sekunden";

//rufe alle 2000 Millisekunden (==2 SEkunde) die Funktion showText auf, um den Text anzuzeigen
setInterval(showText,2000);

//rufe alle 1000 Millisekunden die Funktion calculateCounter auf, um den Countdown neu zu berechnen
setInterval(calculateCounter,1000);

//Methode um Countdown zu berechnen, hier sollte Dein hour, min und sec verändert werden
function calculateCounter(){
	if (sec==0){
		sec=59;
		if (min==0){
			min=59;
			hour=hour-1;
		}
		else{
			min=min-1;
		}
	}
	else{
		sec=sec-1;
	}
	counter=hour+" Stunden, "+min+" Minuten, "+sec+ " Sekunden";
}

function showText(){
	showing=!showing;
	if (showing){
		countdown_txt._visible=true;//Text soll sichtbar sein
		var pX:Number=random(500);//Zufallsewert for X
		var pY:Number=random(300);//Zufallsewert for Y
		countdown_txt._x=pX;
		countdown_txt._y=pY;
		countdown_txt.text="Es dauert noch...\n"+counter;//Dein Text (Es sind noch...) und danach Deine aktuelle Zeit, die Du berechnet hast
		countdown_txt._width=countdown_txt.textWidth;//Breite des Textfeldes soll genauso breit sein wie der Text
		countdown_txt._height=countdown_txt.textHeight*2;
	}
	else{
		countdown_txt._visible=false;//Text ist nicht sichtbar
	}
}

Eine Frage brauchst Du unbedingt 3 Frames? Aber wie gesagt, ich weiß nicht was toggleFreeze bedeutet. Das stop() solltest DU aber auch in Frame 2 packen können (also in der ersten Zeile stop() schreiben danach folgt dann Dein Sourcecode.

Mfg ad86
 

chris_90

Immer gut drauf.

AW: Zufällige Position des Textes

Hi ad86,

so langsam wirst Du ja zu meinem persönlichen Supporter ;)
Danke.

Wenn ich das stop(); aus Frame 1 in Frame 2 an oberste Position verschiebe, wird mir mein Probetext aus dem dynamischen Textfeld sofort angezeigt, er erscheint also nicht nur alle X Frames.

Aber das eine Bild mehr wird schon nicht schaden, oder?

Die Variable VarCountdown habe ich mit _global.VarCountdown im Variablenfeld der countdown_txt zugewiesen.

Damit meine ich, dass es in meinem Flash bei den Eigenschaften des dyn. Textes ein Feld "Var" gibt. In dieses Feld habe ich _global.VarCountdown eingetragen. Dann habe ich var VarCountdown = countdown_txt.text; in Frame 2 geschrieben und gehofft, dass Flash nun in das Textfeld immer die aktuelle countdown_txt.text schreibt.

lg
chris
 
A

ad86

Guest

AW: Zufällige Position des Textes

Hi chris,

so langsam wirst Du ja zu meinem persönlichen Supporter ;)
Danke.

Und das obwohl ich eigentlich nur AS3 kann:D

Wenn ich das stop(); aus Frame 1 in Frame 2 an oberste Position verschiebe, wird mir mein Probetext aus dem dynamischen Textfeld sofort angezeigt, er erscheint also nicht nur alle X Frames.

Aber das eine Bild mehr wird schon nicht schaden, oder?

Ich denke mal nicht, dass es schadet. Man könnte ihn eben nur wahrscheinlich weglassen (wenn man das stop() eben in Frame 2 verschiebt). Und das der Text zuerst nicht sichtbar ist, kannst Du auch erreichen durch "countdown_txt._visible=false;" (ohne Anführungszeichen:D). Das schreibst Du dann auch bei dem stop() in Frame 2 hin.

1. Bringt Dir der letzte Sourcecode (aus dem vorherigen Beitrag) etwas?
2. Ich hab ja nur einen einzigen Frame, auf dem ich nur ein dyn. Textfeld habe, deswegen brauchst Du dieses _global.VarCountdown? Deine Berechnung des Countdown müsstest Du dann in der calculateCounter machen. Du müsstest dann nur der Variable counter Dein berechneten Text mitgeben (20 Stunden, 10 Minuten, 3 Sekunden).
3. Erklärst Du mir dann auch was _parent.toggleFreeze(); bewirkt?

Mfg ad86
 

chris_90

Immer gut drauf.

AW: Zufällige Position des Textes

N'Abend,

es klappt (größtenteils) alles wie geplant. Großes Danke, ad86.

Das stop(); in das zweite Frame zu verschieben hat immernoch nicht geklappt, sprich es rief den unerwünschten, bereits beschriebenen Effekt hervor, aber ein Frame mehr oder weniger...

_parent.toggleFreeze(); sorgt dafür, dass Flash die Countdownanweisungen aus den Frames ausführt. Also quasi "Gehe zu Frame Countdown".

Wie ich oben bereits angedeutet habe, gibt es noch ein Problem.


Wenn ich meine SWF jetzt ausführe, sehe ich Folgendes: Herumschwirrende Elemente verlassen das Fenster nicht, sondern stoßen am Rand ab. Das ist so gewollt.

Wenn ich allerdings das Fenster vergrößere, Vollbild starte etc. tritt das im Bild dargestellte Problem auf. Irgendwie scheint eine Ebene/ Element sich nicht wie die anderen an die Position, wohl aber an die Größe der Bühne anzupassen.
Die herumfliegenden Elemente gelangen nicht mehr bis nach ganz oben, und nicht nach ganz links. Sie befinden sich nur noch im grauen Bereich. Da der graue Bereich aber über den schwarzen teilweise hinausgeht, verschwinden die Elemente auch gelegentlich rechts oder unten, kehren dann aber auch wieder.

Gewollt ist also, dass grauer und schwarzer Bereich deckungsgleich sind.

Brauche ich möglicherweise nur eine Zeile AS2, die besagt: "Mach alles so groß, wie Bühne, aber richte es auch alles gleich aus."?

Danke danke
Chris
 
A

ad86

Guest

AW: Zufällige Position des Textes

Hi,

probier mal "Stage.scaleMode="showAll";" in Deinem Code zu benutzen, Nachdem das passiert, sollte Dein Inhalt innerhalb der swf bleiben. Wenn Du aber nicht proportional skalierst, kann es passieren dass drumherum noch Platz ist. Dafür wird der Inhalt nicht angeschnitten oder verzerrt.
Willst Du diesen Rahmen nicht, kannst Du "Stage.scaleMode="exactFit";" benutzen, dabei tritt aber eine Verzerrung auf.

Sollte das nicht helfen, habe ich keine Ahnung mehr. Dann würde wahrscheinlich nur noch helfen, dass Du die fla mal hochlädst, damit ich mir die angucken kann. Aber nur falls es nicht hilft, und Du es hochladen willst.
Und wegen dem "stop();": Wenn es bei Dir funktioniert, dann lass es so.

Mfg ad86
 

chris_90

Immer gut drauf.

AW: Zufällige Position des Textes

Hi ad86,

danke für die Tipps - beides hilft leider nicht, ich sehe gar keine Veränderung.
Ich probiere nochmal 2-3 Tage mal alles Mögliche wild aus, und dann schau ich mal.

Vielen Dank noch einmal für Deine Hilfe!

lg
Chris
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.564
Beiträge
1.538.064
Mitglieder
67.487
Neuestes Mitglied
MichaelSEivy
Oben