Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-02-2004, 09:12   #1 (permalink)
loveandhateflash
 
Registriert seit: Oct 2001
Ort: ffm
Beiträge: 207
zwei probleme: useHandCUrsor verschachtelt und Mouseevents die nicht gehen

ich habe gerade zwei probleme, die mich vor ein rätsel stellen:
1. vererbt sich useHandCursor auch auf alle mcs, die innerhalb des mcs liegen, auf den useHandCursor angewendet wird, und kann man widersprechenden useHandCursor-befehle trotzdem auf verschachtelte mcs anwenden?

2. bisher konnte ich immer buttons in mcs packen, sowohl buttonevents, als auch mc events haben funktioniert. nun habe ich den fall, dass ich einen mc per duplicateMovieClip vervielfältigt habe. in den neuen mcs funktionieren die button-events nicht, obwohl die doch mit übergeben werden müssten, oder? auch mit einem array habe ich es mal probiert, dass ich den pfad aller neuen mcs extern über eine funktion erreiche, das hat aber dazu geführt, dass komischerweise die funktion gar nicht, oder bei jeder mouseaktion, egal auf welchem mc ausgeführt die funktion ausgelöst hat. ich komme nicht dahinter!
wie würdet ihr vorgehen?
zungenbrecher ist offline   Mit Zitat antworten
Alt 24-02-2004, 12:26   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Beide Probleme haben etwas mit dem Eventverhalten von Flash zu tun: Wenn du ein klickbares Objekt in ein anderes packst und beide Objekte einzeln Events auslösen sollen, hast du ein Problem. Das Containerobjekt fängt nämlich bei einem Event alle weiteren Events (auch für das eingebettete Objekt) ab. Das macht manchmal auch Sinn, weil sonst bei verschachtelten Objekten ein onRollOver/onRollOut gar nicht funktionieren könnte (wenn das innere Objekt berührt wird, ist das dann ein RollOut für das äussere Objekt? etc)

Deswegen würde ich in solchen Fällen ein zusätzliches Objekt, z.B. einen unsichtbaren Button über das Containerobjekt legen, das die Events für das eingebettete Objekt schaltet (auch die useHandCursors). Das unsichtbare Objekt wird nur visible/enabled geschaltet, wenn ein hittest auf das eingebettete Objekt erfolgreich ist o.ä.
  Mit Zitat antworten
Alt 24-02-2004, 12:58   #3 (permalink)
loveandhateflash
 
Registriert seit: Oct 2001
Ort: ffm
Beiträge: 207
danke für die erste antwort,
viel weiter bin ich noch nicht gekommen. komisch ist, dass onCLipEvent (enterFrame) { this.hittest ... }
auch bei den verschachtelten und duplizierten mcs funktioniert, aber mc.onRelease = function () { ...} nicht
ich habe es schon auf 100 verschiedene arten probiert, ich verstehe aber nicht, warum der hittest mouse und dupliziertes mc funktioniert, andere button oder mc-events aber nicht. ich habe die funktion auch shcon den mcs beim duplizieren über ein initObject mitgegeben, dann habe ich es mit attachmovie probiert, es geht alles nicht, auch der attachte mc mit dem initObject ist zwar sichtbar, die funktion mitübergeben, aber es passiert nix, wie kann das sein? bei anderen verschachtelten mcs auf meiner bühne, die nicht per duplicateMovie dupliziert wurden geht es doch auch.
ich blick es nicht.
zungenbrecher ist offline   Mit Zitat antworten
Alt 24-02-2004, 13:28   #4 (permalink)
loveandhateflash
 
Registriert seit: Oct 2001
Ort: ffm
Beiträge: 207
ok, jetzt habe ich bei colin moock gelesen, dass bei duplicateMovieClip() die Event-Handler-Eigenschaften nicht mit kopiert werden, sie gehen verloren. die onClipEvent-Handler aber sehrwohl übergeben werden. wenn ich aber was per initObject beim duplizieren dranhänge, muss es doch gehen, oder? es kann doch nicht sein, dass ein duplizierter mc gar nicht mehr als button funktinieren kann! das muss doch irgendwie über 'ne funktion zu lösen sein !!!
zungenbrecher ist offline   Mit Zitat antworten
Alt 24-02-2004, 14:00   #5 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Sowas kannst zum Beispiel machen:
ActionScript:
  1. mc.onRelease = function() {
  2.     trace(this._name);
  3. };
  4. mc.duplicateMovieClip("mc1", 1, {_x:200, _y:200, onRelease:mc.onRelease});
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist gerade online   Mit Zitat antworten
Alt 24-02-2004, 14:05   #6 (permalink)
loveandhateflash
 
Registriert seit: Oct 2001
Ort: ffm
Beiträge: 207
ausprobiert habe ich das nocht nicht, aber die _x und _y properties sind doch in diesem fall egal, oder?
zungenbrecher ist offline   Mit Zitat antworten
Alt 24-02-2004, 14:13   #7 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Ja, die sind natürlich egal, die hatte ich halt bloß drin...
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist gerade online   Mit Zitat antworten
Alt 24-02-2004, 14:17   #8 (permalink)
loveandhateflash
 
Registriert seit: Oct 2001
Ort: ffm
Beiträge: 207
also ich habe das jetzt auch noch mal ausprobiert, geht genau so wenig, wie alles andere, was nicht onClipEvent ist. es funktioniert weder mit dem ursprungsmc, noch mit den duplizierten. ich möchte aus performancegründen gerne auf onClipEvent (enterFrame) verzichten, aber das einzige, was mir bisher eingefallen ist, ist eine Kombination aus onClipEvent (enterFrame) {hittest} und onClipEvent (mouseUp), aber das kann doch nicht die einzige lösung sein!

bitte hilfe
zungenbrecher ist offline   Mit Zitat antworten
Alt 24-02-2004, 14:26   #9 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Was geht schon mit dem Ursprungs-MC nicht? Die Button-Funktionalität oder was? Dann machst aber irgendwas falsch... Kannst mal was von deinem Skript hier offenbaren?
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist gerade online   Mit Zitat antworten
Alt 24-02-2004, 14:31   #10 (permalink)
loveandhateflash
 
Registriert seit: Oct 2001
Ort: ffm
Beiträge: 207
in einem mc liegen zwei weitere mcs, der eine führt nur das duplizieren aus, bestimmt die position, vergibt die richtigen namen, hängt die variablen an, etc. der andere mc enthält einen punkt und ein textfeld, funktioniert wunderbar. beide mc liegen wie gesagt in einem mc, dem auch mouseevents zugeordnet sind, der übergeordnete mc kann per mouseclick skaliert werden, damit werden dann richtigerweise alle enthaltenen mcs proportional mitskaliert. die mouseevents im übergeordneten mc gehen aber nicht, während die onCLipEvent handler sehr wohl funktionieren.



onClipEvent (load) {
_parent.movStadt.onRelease = function() {
trace("gedrückt");
};
//_parent.movStadt._visible = false;
//_global.punkte = new Array ();
var i = 0;
while (i < _root.ortsanzahl) {
_parent.movStadt.duplicateMovieClip ("movStadt" + i, i, {onRelease:_parent.movStadt.onRelease});
_parent["movStadt" + i]._y = (_root.Normierung(arrStadt[i].latitude, "y" )-3)
_parent["movStadt" + i]._x = (_root.Normierung(arrStadt[i].longitude, "x" )-11)
_parent["movStadt" + i].name = arrStadt[i].name;
_parent["movStadt" + i].titeltext = arrStadt[i].titeltext;
_parent["movStadt" + i].infotext = arrStadt[i].infotext;
//_parent["movStadt" + i].druck();
//_parent["movStadt" + i].mouseover.druck (this);
//_global.punkte.push(this["movStadt" + i]);
i++;
}
}
zungenbrecher ist offline   Mit Zitat antworten
Alt 24-02-2004, 14:36   #11 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
verstehe nicht...

das bsp. von sonar funktioniert einwandfrei im 6er-player...
eben nochmals selbst getestet...


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 24-02-2004, 14:44   #12 (permalink)
loveandhateflash
 
Registriert seit: Oct 2001
Ort: ffm
Beiträge: 207
ok, es scheint deshalb nicht zu funktionieren, weil der mc mit der buttonfunktion in einem anderen liegt, weise ich dem ursprungsmc riekt die funktion
on (release) {
trace ("punkt");
}
zu geht es nämlich nicht mal über den ursprungsmc. kopiere ich den aber auf _root und probiere es dann, geht es einwandfrei. ist es also doch so, dass
on (release) {
trace ("punkt");
}
oder mc.onRelease = funktion () {
trace ("punkt");
}
nicht in verschachtelten mcs funktionieren, oder was ist das problem?

ich glaube holgers lösung ist doch die beste, ich muss irgendwie aus der verschachtelung rauskommen.

nerv!!

Geändert von zungenbrecher (24-02-2004 um 14:47 Uhr)
zungenbrecher 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 12:21 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele