Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-11-2004, 18:59   #1 (permalink)
oEF(etischist)
 
Registriert seit: Dec 2003
Ort: muc
Beiträge: 664
onPress-Ereignis bestimmen und auch gleich auslösen?!

Hallo,

folgendes Problemchen:
ein bild hat ein onPress Ereignis, welches nach dem Ereignis erst mal gelöscht wird, bzw. durch eine neues onPress überschrieben wird.
Nun will ich den Button reset_pic so haben, dass er a) das alte onPress wieder herstellt (klappt auch), UND das Ereignis sofort auslöst.
Warum klappt bzw. findet er die Funktion nicht???
Oder, wie kann ich ein Press-Ereignis per as auslösen?

ActionScript:
  1. // irgendwo vorher
  2. this[mc].onPress = press_elem; // klappt!
  3. // ...
  4.  
  5.  
  6. function press_elem() {
  7.     // tuirgendwas
  8. }
  9. reset_pic.onPress = function() {
  10.     this._parent[mc].onPress = press_elem; // das klappt
  11.     this._parent[mc].press_elem()// das nicht
  12. };

merci,
solo
soloFlash ist offline   Mit Zitat antworten
Alt 15-11-2004, 19:04   #2 (permalink)
Nix Wisser
 
Benutzerbild von nullidee
 
Registriert seit: May 2003
Ort: Würzburg, Kleinstadt
Beiträge: 3.510
ich hab's nicht ganz verstanden.

Willst du sowas wie einen Kippschalter?

Code:
on(release){ 
if(!kipp){ 
//funktion an 
}else{ 
//funktion aus 
} 
kipp=!kipp 
}
code ist von smirgel
__________________
nullidee

Abakus GT 10² Kugeln - 80"Leinwand - CARAN D´ACHE SUPRACOLOR®
nullidee ist offline   Mit Zitat antworten
Alt 15-11-2004, 19:13   #3 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
ActionScript:
  1. this["mc"].onPress = press_elem; // klappt!
  2. // ...
  3.  
  4.  
  5. function press_elem() {
  6.     trace("tuirgendwas");
  7. }
  8. reset_pic.onPress = function() {
  9.     this._parent["mc"].onPress = press_elem; // das klappt
  10.     press_elem()// das nicht
  11. };
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 15-11-2004, 19:30   #4 (permalink)
oEF(etischist)
 
Registriert seit: Dec 2003
Ort: muc
Beiträge: 664
Hi Rusty,

das habe ich auch bereits probiert.

es passiert auch was, nämlich, dass das Ganze, also mehrere Bilder von dem onPress betroffen sind kurzum, da bin ich eine Ebene zu weit oben

trace(this) in der Funktion press_elem() liefert:
_level0.cont_3_1.bild2 beim onPress des Bildes
_level0.cont_3_1 bei Deinem Vorschlag.
tja, und meine Idee this._parent[mc].press_elem() findet die Funktion nicht...

solo

und ich dachte ich versteh Flash...
soloFlash ist offline   Mit Zitat antworten
Alt 16-11-2004, 17:19   #5 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Vielleicht kommen wir weiter wennst Dein anliegen genauer erklärst
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 17-11-2004, 06:12   #6 (permalink)
oEF(etischist)
 
Registriert seit: Dec 2003
Ort: muc
Beiträge: 664
Kann ich machen.

Ich will letztendlich wissen, ob und wie ich ein Mausereignis (in meinem Fall onPress, dass auf eine Funktion verweist) in AS auslösen kann. Ich will also irgendwo in meinem Code sagen, jetzt wird genau der Button gedrückt.

Wäre schön, wenns auch eine Lösung gäbe, für beide Varianten:
this[mc].onPress = press_elem;
function press_elem() {
//...
}
und:
this[mc].onPress = function () {//...};

Grüße,
solo
soloFlash ist offline   Mit Zitat antworten
Alt 17-11-2004, 16:58   #7 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Jetzt bin ich aber nicht wirklich schlauer wie vorher
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 18-11-2004, 07:48   #8 (permalink)
oEF(etischist)
 
Registriert seit: Dec 2003
Ort: muc
Beiträge: 664
OK, dann versuche ich es nochmal:

Gegeben ist eine Mausereignis, dass eine Funktion auslöst:

mc.onPress = press_elem;
oder
mc.onPress = function(){//...};

Dieses Ereignis wird also ausgelöst, wenn auf den mc geklickt wird.

Gesucht ist ein Weg, dieses Ereignis auszulösen, ohne die Maus dazu benutzen zu müssen, also sagen wir mal in einem Initialisierungsprozess.
Irgendwo im Code soll stehen, tue so als ob der mc gedrückt wurde und tu das, was du tun würdest, wenn der User mit der Maus den mc gedrückt hätte.

Supertoll wäre, wenn beide versionen möglich wären:
1) mc.onPress = press_elem;
2) mc.onPress = function (){//...}

Kurzum, das suche ich:
ActionScript:
  1. mc.onPress= function() {
  2. trace("Dalli Klick");
  3. }
  4. // Initialierung
  5. function init_oder_so() {
  6.   // mach ein Press auf den mc
  7.   mc.press;
  8.   // oder
  9.   mc.onPress;
  10.   // oder was, oder wie?
  11. }

Ich hoffe, nun ist es klarer?!

Danke,
solo
soloFlash ist offline   Mit Zitat antworten
Alt 18-11-2004, 14:30   #9 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
wenn Du schon eine funktion hast die nochmal eine funktion auslösen soll, und die funktion auch noch von einem Button angesprochen werden soll!!
Wieso nimmst dann nicht erste funktion, schreibst da rein was Passieren soll, und steuerts die funktion auch noch vom Button an!!
Alles andere erscheint mir reichlich umständlich!!

Falls ich Dich richtihg verstanden hab
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 18-11-2004, 21:39   #10 (permalink)
oEF(etischist)
 
Registriert seit: Dec 2003
Ort: muc
Beiträge: 664
der Kreis schliesst sich...
das klappt nämlich nicht ;( siehe erster Beitrag...

solo
soloFlash ist offline   Mit Zitat antworten
Alt 19-11-2004, 00:46   #11 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Nope!
Mein Vorschlag hat nichts mit Deiem ersten bsp zu tun
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 19-11-2004, 08:01   #12 (permalink)
oEF(etischist)
 
Registriert seit: Dec 2003
Ort: muc
Beiträge: 664
Irgendwie scheinen wir ein Kommunikationsproblem zu haben, da ich dann wohl Deinen Vorschlag nicht verstanden habe
Kannst Du den mal als miniscript schreiben, damit ich es wirklich verstehe, was Du meinst?

Nochmal mein Code, diesmal ausführlicher kommentiert.
ActionScript:
  1. // Zuweisung der Funktion zu Button-Event
  2. this[mc].onPress = press_elem; 
  3.  
  4. // das ist die besagte Funktion
  5. function press_elem() {
  6.     // tuirgendwas
  7. }
  8. // dann irgendwann kommt das
  9. this[mc].onPress = ne_andere_funktion; 
  10. // das ist dann dieses hier
  11. function ne_andere_funktion() {
  12.     // tuirgendwasanderes
  13. }
  14.  
  15. // und irgendwann wird diese Funktion angesprungen:
  16. // und die soll 2 Dinge machen
  17. reset_pic.onPress = function() {
  18.     this._parent[mc].onPress = press_elem; // Event dem Button wieder zuweisen, weil es temporär ersetzt wurde (funktioniert)
  19.     this._parent[mc].press_elem()// und das, was sich hinter dem Button-Klick verbirgt soll auch gleich gemacht werden, was nicht klappt.
  20. };

wenn wir jetzt immer noch nicht zusammenkommen, dann mach ich es halt anders.

Ich danke Dir für deine Hilfsbereitschaft, und dass Du das Thema weiter verfolgt hast.

Grüße,
solo
soloFlash ist offline   Mit Zitat antworten
Alt 19-11-2004, 08:13   #13 (permalink)
PIXELSCHIEBER
 
Benutzerbild von FlashKasper
 
Registriert seit: Oct 2001
Ort: Salem, Bodensee
Beiträge: 638
morgen,

hab grade mal mitgelesen und hab versucht es zu schnallen :-)

Code:
    this._parent[mc].press_elem();
Liegt wohl an dem Funktionsaufruf bzw. den Pfaden dazu, ich versteh dich doch richtig, du willst das die Funktion sozusagen "einfach ausgeführt wird".

Versuch mal die Funktion einfach aufzurufen ohne this._parent[mc]. bzw. mit dem richtigen Pfad.

Gruss
FlashKasper
__________________
Pack den Highscore
FlashKasper ist offline   Mit Zitat antworten
Alt 19-11-2004, 11:02   #14 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Ort: hessen
Beiträge: 9
hallo;
ohne mich tiefer damit beschäftigen zu wollen, aber im aufruf der function
this[mc].onPress = press_elem;

fehlt die Doppelklammer (), oder liege ich falsch?

this[mc].onPress = _root.press_elem ();
und evtl. noch _root vor die function da der aufruf ja im clip liegt die function aber sicherlich in der root.


du kannst auch, wenn du auf einen schalter z verschiedenen functionen haben willst ein attribut vergeben, verhalten 1 oder 2, in den aufruf eine if abfrage für den fall das verhalten 1 ist ..mache dieses jenes

und für den fall, dass verhalten 2 ist, oder eben nihct 1... mache das und welches.
so wird beim drücken immer die function aufgerufen aber je nach dem wie das attribut steht nur die eine oder andere finction ausgelöst.


andi

ich dachte immer flash wäre systemübergreifend.........
Phaser ist offline   Mit Zitat antworten
Alt 19-11-2004, 12:19   #15 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 38
hm

Code:
 // irgendwo vorher 
mc.onPress = press_elem; // klappt bei mir (nur mx) nur so
// ... 


function press_elem() { 
   trace("hier"); // beim ersten klicken soll "hier" ausgegeben werden.
   mc.onPress=anders; // danach wird dem ereignis ein anderes zugewiesen
}
function anders(){
trace("dort"); // soll ab dem zeiten klicken ausgeführt werden.
}
reset_pic.onPress = function() { 
    this._parent[mc].onPress = press_elem; // machter
    this._parent[mc].press_elem();  // gibt "hier" aus
};
bin mir zwar nicht sicher ob du das so wolltest aber ...

andere sache, wenn über reset_pic das ganze zurückgesetzt wurde, dann wird durch press_elem natürlich auch die funktionszuweisung neu definiert. sprich: nach drücken des reset_pic wird dir zwar "hier" ausgegeben, aber wenn du jetzt danach auf mc drückst, kommt natürlich wieder "dort".

Geändert von DayusRam (19-11-2004 um 12:20 Uhr)
DayusRam 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:55 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele