Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-08-2004, 13:21   #1 (permalink)
flashed
 
Benutzerbild von snard
 
Registriert seit: Aug 2004
Ort: Karlsruhe
Beiträge: 89
onMouseDown

Hi, beim drücken der Maus wir mit hitTest überprüft welche meiner Schaltflächen angeklickt wird und dann mein externes Script für das Textfenster eingebunden. Funktioniert auch bei beiden, nur halt jeweils nur ein mal. Woran kann das liegen bzw wie kann ich das umgehen? Bsp hier unter lyrics.

Code:
...
onMouseDown = function()	{
	if(schaltflaeche_display_mc.hitTest(_xmouse, _ymouse, true)) {
		var text = bedienungsanleitung;
		var textformat = format;
		#include "scripte/textfenster.as"
	}
	else if(schaltflaeche_text_1_mc.hitTest(_xmouse, _ymouse)) {
		trace("ok");
		schaltflaeche_text_1_mc._alpha = "50";
		var text = titel_1 + text_1;
		var textformat = format;
		#include "scripte/textfenster.as"
	}
};
...
snard ist offline   Mit Zitat antworten
Alt 25-08-2004, 13:41   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Includes solltest du immer an den Anfang deines Scriptes legen, da diese nur ein einziges Mal beim Veröffentlichen importiert werden.

Warum wertest du die Klicks auf deinen Buttons mit hitTest und nicht mit Klickevents (onRelease oder onPress) oder Listenern aus?
  Mit Zitat antworten
Alt 25-08-2004, 14:04   #3 (permalink)
flashed
 
Benutzerbild von snard
 
Registriert seit: Aug 2004
Ort: Karlsruhe
Beiträge: 89
Hi, habe die buttonfunktionen ja schon mit Klickevents (geht auch), wollt nur ausprobieren ob und wie das mit hitTest auch geht.
Die Includes kann ich nicht nur an den Anfang legen, da in textfenster.as die Variable "var text = ..." ausgewertet und das Textfenster erzeugt wird und sonst der neue Text nicht angezeigt wird .
Was sind Listener?

Geändert von snard (25-08-2004 um 14:05 Uhr)
snard ist offline   Mit Zitat antworten
Alt 25-08-2004, 14:21   #4 (permalink)
FlashLove@FirstSight
 
Benutzerbild von FLASHStyler
 
Registriert seit: Feb 2003
Beiträge: 2.460
PHP-Code:
/*Listener ist ein Objekt mit definierten Methoden für bestimmte Ereignisse:
Mouse, Key etc*/

//Bsp:
_root.createTextField("output"00020050); 
= new Object(); 
k.onKeyDown = function() { 
    
Key.getCode(); 
    
output.text "Folgende Taste wurde gedrückt: " c

Key.addListener(k); 

//oder

_root.createTextField("output"00020020); 
= {};
0;
m.onMouseDown = function() {
    
i++
    
output.text "Maustaste wurde " " mal gedrückt";
}
Mouse.addListener(m); 
Der Einsatz der Listener ist vielfälltig...
__________________
www.johannes-erhardt.com | blog | xing me baby

Geändert von FLASHStyler (25-08-2004 um 14:25 Uhr)
FLASHStyler ist offline   Mit Zitat antworten
Alt 25-08-2004, 14:42   #5 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
Die Includes kann ich nicht nur an den Anfang legen,
Dann solltest du das umprogrammieren, so ist es sehr unsauber. Vor allem muss es reichen, das File einmal zu importieren. Vielleicht reicht in deinem Fall aber auch schon eine Funktion, statt eines externen AS-Files?

Wie sieht denn dein Script mit Klick-Events aus?
  Mit Zitat antworten
Alt 25-08-2004, 15:38   #6 (permalink)
flashed
 
Benutzerbild von snard
 
Registriert seit: Aug 2004
Ort: Karlsruhe
Beiträge: 89
Code:
stop();
System.useCodepage = true;
loadVariablesNum("texte/bedienungsanleitung.txt", 0);
loadVariablesNum("texte/lyrics.txt", 0);
#include "scripte/textformate.as"

// Schaltflächen beim Betreten unsichtbar machen
schaltflaeche_text_1_mc._alpha = "0";
schaltflaeche_text_2_mc._alpha = "0";
schaltflaeche_text_3_mc._alpha = "0";
schaltflaeche_text_4_mc._alpha = "0";
schaltflaeche_text_5_mc._alpha = "0";
schaltflaeche_text_6_mc._alpha = "0";
schaltflaeche_text_7_mc._alpha = "0";
schaltflaeche_text_8_mc._alpha = "0";
schaltflaeche_text_9_mc._alpha = "0";
schaltflaeche_text_10_mc._alpha = "0";
schaltflaeche_text_11_mc._alpha = "0";
schaltflaeche_text_12_mc._alpha = "0";
schaltflaeche_text_13_mc._alpha = "0";
schaltflaeche_text_14_mc._alpha = "0";
schaltflaeche_text_15_mc._alpha = "0";
schaltflaeche_text_16_mc._alpha = "0";
tap_mc._alpha = "0";

// Aktionen der Schaltflächen festlegen
home.onPress = function() {
	loadMovieNum("site.swf", 0);
}

tap_mc.onRollOver = function() {
	tap_mc._alpha = "35";
}
tap_mc.onPress = function() {
	trace("ok");	
}
tap_mc.onRollOut = function() {
	tap_mc._alpha = "0";
}

schaltflaeche_display_mc.onPress = function() {
		var text = bedienungsanleitung;
		var textformat = format;
		#include "scripte/textfenster.as"
}

schaltflaeche_text_1_mc.onRollOver = function() {
	schaltflaeche_text_1_mc._alpha = "35";
	createTextField("text_txt", 4, 20, 5, 600, 50);
	var textfeld = text_txt;
	textfeld.multiline = true;
	textfeld.wordWrap = true;
	textfeld.selectable = false;
	textfeld.embedFonts = true;
	textfeld.html = true;
	textfeld.htmlText = titel_1;
	textfeld.setTextFormat(format);
};
schaltflaeche_text_1_mc.onRollOut = function() {
	schaltflaeche_text_1_mc._alpha = "0";
	text_txt.removeTextField();
	
};
schaltflaeche_text_1_mc.onPress = function() {
	schaltflaeche_text_1_mc._alpha = "50";
	var text = titel_1 + text_1;
	var textformat = format;
	#include "scripte/textfenster.as"
};

schaltflaeche_text_2_mc.onRollOver = function() {
	schaltflaeche_text_2_mc._alpha = "35";
	createTextField("text_txt", 5, 10, 5, 300, 50);
	var textfeld = text_txt;
	textfeld.multiline = true;
	textfeld.wordWrap = true;
	textfeld.selectable = false;
	textfeld.embedFonts = true;
	textfeld.html = true;
	textfeld.htmlText = titel_2;
	textfeld.setTextFormat(format);
};
schaltflaeche_text_2_mc.onRollOut = function() {
	schaltflaeche_text_2_mc._alpha = "0";
	text_txt.removeTextField();
};
schaltflaeche_text_2_mc.onPress = function() {
	schaltflaeche_text_2_mc._alpha = "50";
	var text = titel_2 + text_2;
	var textformat = format;
	#include "scripte/textfenster.as"
};
...
die Variable text wird dann halt in textfenster.as verarbeitet, so brauch ich in Flash nur die Variablen verändern

Geändert von snard (25-08-2004 um 15:48 Uhr)
snard ist offline   Mit Zitat antworten
Alt 25-08-2004, 23:00   #7 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Na, das lässt sich aber noch einiges optimieren... Z.B. kannst du deine Schaltflächen-Alphas in einer Schleife auf 0 setzen:
ActionScript:
  1. for (var i=1;i<17;i++){
  2.    _level0["schaltflaeche_text_"+i+"_mc._alpha"] = 0;
  3. }
Alphawerte sind übrigens vom Typ Number und nicht vom Typ String...

Ist dein Prob denn jetzt eigentlich gelöst?
  Mit Zitat antworten
Alt 28-08-2004, 12:13   #8 (permalink)
flashed
 
Benutzerbild von snard
 
Registriert seit: Aug 2004
Ort: Karlsruhe
Beiträge: 89
Danke, wenn man noch mehr einfache Sachen drinn sind kannst mir gerne sagen.
Hab halt erst vor 2 Wochen so richtig mit Actionscript angefangen und mehr darauf geschaut, dass es erst mal läuft (copy paste halt) und eigentlich noch nicht an Optimierung gearbeitet. Werde aber deinen Vorschlag auf jeden Fall annehmen.
Prob ist eigentlich noch vorhanden. Naja mit dem Script von oben (mit klick events) läuft's ja. Nur warum's mit hitTest nicht geht weiß ich immer noch nicht.
Na was soll's Funktion ist ja gegeben.

Geändert von snard (28-08-2004 um 12:19 Uhr)
snard ist offline   Mit Zitat antworten
Alt 28-08-2004, 12:44   #9 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
hitTest ist eigentlich nicht für direkte Aktionen mit der Maus gedacht, dafür gibt es ja die Maus-Events. hitTest nimmt man eher wenn man überprüfen will, ob ein Objekt ein anderes Objekt berührt. Beispiele sind Drag+Drop-Aktionen oder Kollisionsüberprüfungen...
  Mit Zitat antworten
Alt 30-08-2004, 01:57   #10 (permalink)
flashed
 
Benutzerbild von snard
 
Registriert seit: Aug 2004
Ort: Karlsruhe
Beiträge: 89
Hab jetzt mal mein externes as in "textfenster.as" in eine Funktion gepackt, damit ich die Datei nur einmal includieren brauch (wie vorgeschlagen) und die Funktion mit Parametern nutzen kann. Funktioniert auch alles soweit. Jetzt lass ich mein fertiges swf von einem anderen swf mit loadMovieNum laden und der Text wird nicht mehr geladen. Woran könnte das liegen?

Geändert von snard (30-08-2004 um 04:44 Uhr)
snard ist offline   Mit Zitat antworten
Alt 30-08-2004, 12:53   #11 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Hast du irgendwo "_root" verwendet? Dann stimmen jetzt die Objektpfade nicht mehr, da _root immer auf die aktuelle Hauptzeitleiste zeigt. BTW: loadMovie statt loadMovieNum sollte ausreichen, da du sicher nur einen Level benötigst...
  Mit Zitat antworten
Alt 30-08-2004, 17:20   #12 (permalink)
flashed
 
Benutzerbild von snard
 
Registriert seit: Aug 2004
Ort: Karlsruhe
Beiträge: 89
Hi, danke mit loadMovie klappt jetzt alles. Kennst du ein gutes Tutorial oder so in dem _level, szenen und ihre Anwendung gut erklärt sind?
snard ist offline   Mit Zitat antworten
Alt 30-08-2004, 17:34   #13 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
3 Link in meiner siggi...aber lass bitte die finger weg von szenen.. machen nur ärger!

grz
pape
pape ist offline   Mit Zitat antworten
Alt 30-08-2004, 18:59   #14 (permalink)
flashed
 
Benutzerbild von snard
 
Registriert seit: Aug 2004
Ort: Karlsruhe
Beiträge: 89
thx
snard ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 23:52 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele