Dabei seit: 20.09.2007 Ort: - Alter: - Geschlecht: -
Verfasst Mo 24.09.2007 14:42 Titel
Button in MC integrieren
Hallo Zusammen,
vermutlich eine leichte Frage für Euch.
Wie integriere ich einen Button in einen Moviclip?
Und muß ich die Buttoninstanz irgendwie besonders benennen, damit ich sie anklicken kann?
Danke für Eure Hilfe...
Dabei seit: 20.09.2007 Ort: - Alter: - Geschlecht: -
Verfasst Mo 24.09.2007 15:10 Titel
Leider ist es, glaube ich, nicht so einfach.
Ich poste mal das .as.
Im Moment liegt das Event auf einem Button.
Ich hätte es aber gerne auf dem dynamischen MC.
Ich hoffe, das kann man aus dem as ersehen...
Habe es jeweils reingeschrieben, wo was hinsoll...
Hier das .as:
Stage.scaleMode = 'noScale';
this.dockActions = function(label) {
switch(label) {
case 'blau':
//das hier ist ein dynamischer MC auf dem ich gerne die fadefunktion hätte!
break;
case 'lind':
//das hier ist ein dynamischer MC auf dem ich gerne die fadefunktion hätte!
break;
case 'rot':
trace('Actions here to handle red.');
break;
default:
trace('Actions here to handle xxx.');
}
}
this.attachMovie('Dock', 'menu_mc', 1, dockTemplate);
this.menu_mc._x = Stage.width / 2;
this.menu_mc._y = Stage.height;
//ab hier das Überblendungsskript
//inhaltsmovieclips transparent setzen
this.in1._alpha = 0;
this.in2._alpha = 0;
this.in3._alpha = 0;
//aktionen für die Buttons
// die Fadefunktion liegt im Moment auf den Buttons
// sie soll aber, wie gesagt, oben auf den dynamischen MC
button1.onPress = function() {
//Name des einzufadenden Movieclips in die
//Variable _root.einzufaden schreiben
einzufaden = "in1";
//fadefunktion aufrufen mit den Angaben für deren Parameter ein/aus
fade(einzufaden, auszufaden);
};
button2.onPress = function() {
einzufaden = "in2";
fade(einzufaden, auszufaden);
};
button3.onPress = function() {
einzufaden = "in3";
fade(einzufaden, auszufaden);
};
//Fadefunktion
fade = function (ein, aus) {
// Sicherstellen, dass bei nochmaligem Klick auf denselben
// Button nicht der aktuelle Clip aus- und wieder eingefadet wird
if (ein != aus) {
this[ein].gotoAndPlay(2);
this.onEnterFrame = function() {
this[aus]._alpha -= 5;
this[ein]._alpha += 5;
if (this[aus]._alpha <= 0 && this[ein]._alpha >= 100) {
this[aus].gotoAndStop(1);
this.auszufaden = ein;
delete this.onEnterFrame;
}
};
}
};
Dabei seit: 20.09.2007 Ort: - Alter: - Geschlecht: -
Verfasst Mo 24.09.2007 16:05 Titel
Würde es auch gern einacher haben...
Dachte eben auch, ich könnte alles auch auf einen MC legen. Aber es funktioniert nicht.
Also... Ich markier mal die Stelle Rot, wo ich die Fadefunktion gerne hinhätte.
Blau mach ich sie da, wo sie gerade ist.
der MC, wo die Fadefunktion hinsoll ist ein Dynamisches Dock, wie man es vom Mac kennt.
hier der Link zu dem Code, bzw. der SWF. Dann ist es vielleicht deutlicher, was ich meine.
Na ja, wie gesagt, ich weiß nicht, was ich falschmache.
Danke für Hilfe
Und hier nochmal das markierte .as:
Stage.scaleMode = 'noScale';
// Hier steht im Folgenden drin, wie die Mcs mit clicks umgehen sollen
// und eben genau hier - auf einem der MCs, bzw. auf allen - soll die Fadefunktion drinstehen
this.dockActions = function(label) {
switch(label) {
case 'blau':
//das hier ist ein dynamischer MC auf dem ich gerne die fadefunktion hätte!
break;
case 'lind':
//das hier ist ein zweiter dynamischer MC auf dem ich gerne die fadefunktion hätte!
break;
case 'rot':
trace('Actions here to handle red.');
break;
default:
trace('Actions here to handle xxx.');
}
}
var dockTemplate = {
layout: 0, /* top | right | bottom | left | *rotation* */
icon_size: 128,
icon_min: 32,
icon_max: 128,
icon_spacing: 1,
items: [
//das hier sind die einzelnen Mcs bzw. ihre Instanznahmen
{ id: 'lind', label: 'lind'},
{ id: 'grün', label: 'grün' },
{ id: 'rosa',label: 'rosa' },
{ id: 'gelb', label: 'gelb' },
{ id: 'rot', label: 'rot' },
{ id: 'braun', label: 'braun' },
{ id: 'blau', label: 'blau' },
{ id: 'weiß', label: 'weiß' }
],
span: null,
amplitude: null,
callback: this.dockActions
}
//ab hier das Überblendungsskript
//inhaltsmovieclips transparent setzen
this.in1._alpha = 0;
this.in2._alpha = 0;
this.in3._alpha = 0;
//aktionen für die Buttons
// die Fadefunktion liegt im Moment auf den Buttons
// sie soll aber, wie gesagt, oben auf den dynamischen MC
button1.onPress = function() {
//Name des einzufadenden Movieclips in die
//Variable _root.einzufaden schreiben
einzufaden = "in1";
//fadefunktion aufrufen mit den Angaben für deren Parameter ein/aus
fade(einzufaden, auszufaden);
};
button2.onPress = function() {
einzufaden = "in2";
fade(einzufaden, auszufaden);
};
button3.onPress = function() {
einzufaden = "in3";
fade(einzufaden, auszufaden);
};
//Fadefunktion
fade = function (ein, aus) {
// Sicherstellen, dass bei nochmaligem Klick auf denselben
// Button nicht der aktuelle Clip aus- und wieder eingefadet wird
if (ein != aus) {
this[ein].gotoAndPlay(2);
this.onEnterFrame = function() {
this[aus]._alpha -= 5;
this[ein]._alpha += 5;
if (this[aus]._alpha <= 0 && this[ein]._alpha >= 100) {
this[aus].gotoAndStop(1);
this.auszufaden = ein;
delete this.onEnterFrame;
}
};
}
};
Dabei seit: 20.09.2007 Ort: - Alter: - Geschlecht: -
Verfasst Mo 24.09.2007 17:15 Titel
Ok, ok...
entschuldigt vielmals...
is wie du gesagt hast:
Jede Aktion geht auch auf einen Mc...
Ich stand auf dem Schlauch...
Dummer fehler.
Vielen Dank trotzdem für die Mühe...
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst an Umfragen in diesem Forum nicht mitmachen.