Beiträge: 7 Registriert: Aug 2008
| 04.09.2010, 18:11
Hallo zusammen,
wieder einmal hab ich ein Problem und hoffe ihr könnt mir helfen.
Ich habe mir das 3D-Rotationsmenü von TQxTim runtergeladen, welches für meine Zwecke äußerst passend ist (http://www.flashhilfe.de/forum/flash/3d-rotationsmenue-bildergalerie-bildrotation-249837-249837.html).
Beim klick auf ein kleines Bild im Rotationsmenü wird ein entsprechendes Bild in den Container geladen.
Ich möchte nun, dass beim klick auf ein kleines Bild zusätzlich ein Movieclip aus der Bibliothek in einen zweiten Container geladen wird.
Hier ist mein modifiziertes Script:
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | //Speicherort Menuebilder
menuebilder = ["bilder/mini0.jpg", "bilder/mini1.jpg", "bilder/mini2.jpg", "bilder/mini3.jpg", "bilder/mini4.jpg", "bilder/mini5.jpg", "bilder/mini6.jpg", "bilder/mini7.jpg", "bilder/mini8.jpg", "bilder/mini9.jpg", "bilder/mini10.jpg", "bilder/mini11.jpg", "bilder/mini12.jpg", "bilder/mini13.jpg", "bilder/mini14.jpg", "bilder/mini15.jpg", "bilder/mini16.jpg", "bilder/mini17.jpg", "bilder/mini18.jpg"];
//blendet den Ladebalken aus
balken._visible = false;
//FadeOut-Funktion
function fadeOut(ladeziel, speed) {
onEnterFrame = function () {
if (container._alpha>1) {
container._alpha -= speed;
// wenn nicht, dann Ladebalken
} else {
container.loadMovie(ladeziel);
onEnterFrame = function () { balken._visible = true;balken._xscale = int(Math.round(container.getBytesLoaded()/container.getBytesTotal()*100));if (container.getBytesLoaded()>=container.getBytesTotal() && container.getBytesLoaded()>12) {delete onEnterFrame;balken._visible = false;fadeIn(speed);}};
}
if (container2._alpha>1) {
container2._alpha -= speed;
} else {
container2.attachMovie("mc_detail"+i, "mc_detail"+i, (i+100)); //Hier ist das PROBLEM!!
onEnterFrame = function () {
fadeIn(speed);
}
}
}
}
//FadeIn-Funktion
function fadeIn(speed) {
onEnterFrame = function () {
if (container._alpha<99) {
container._alpha += speed;
} else {
delete onEnterFrame;
}
if (container2._alpha<99) {
container2._alpha += speed;
} else {
delete onEnterFrame;
}
}
}
//Rotationsmenue
MovieClip.prototype.rotation_menue = function(bildListe, posX, posY, alpha, fokus, posZ, radius, rsichtbar, drehfaktor) {
var mwinkel = 0;
var bilder = [];
var pi = 2*Math.PI;
var signal = true;
var bild, dimension, piwinkel;
this._x = posX;
this._y = posY;
this._alpha = alpha;
//Menuebilder werden eingelesen
for (var i = 0; i<bildListe.length; i++) {
bild = this.attachMovie("bildrahmen", "bild"+i, i);
bild.wphase = pi/bildListe.length*i;
bild.container.loadMovie(bildListe[i]);
//Speicherort der Anzeigebilder
bild.url = "bilder/big"+i+".jpg";
//Aktion bei Klick auf Bild
bild.onRelease = function() {
trace(this.url);
//Anzeigebilder werden eingelesen
fadeOut(this.url, 10);
};
//aendert das Rotationsverhalten, wenn Maus auf Bild
bild.onRollOver = function() {
//gibt den Bereich an, ab dem die Rotation stoppt // "this._xscale" faengt die hinteren Bilder ab
if (_root._xmouse>Stage.width/2-80 && _root._xmouse<Stage.width/2+80 && this._xscale>50) {
signal = false;
}
};
bild.onRollOut = function() {
signal = true;
};
//loescht den Rahmen, wenn rsichtbar = false
if (rsichtbar == false) {
bild.rahmen._visible = 0;
}
//Funktion wird auf Bilder angewendet
bilder.push(bild);
}
//Rotation + Bildgroeße
this.onEnterFrame = function() {
if (signal) {
mwinkel += zentrum._xmouse/drehfaktor;
if (mwinkel>=pi) {
mwinkel -= pi;
}
if (mwinkel<0) {
mwinkel += pi;
}
for (var i = 0; i<bilder.length; i++) {
bild = bilder[i];
bild.x = radius*Math.cos(bild.wphase+mwinkel);
bild.z = radius*Math.sin(bild.wphase+mwinkel)+posZ;
//dimension ändert die Breite der Rotation
dimension = fokus/bild.z;
//*0.5 wurde von mir hinzugefügt => Bilder klappen nicht so schnell um die Kurve
piwinkel = Math.atan2(bild.x, bild.z)*0.5;
bild._x = bild.x*dimension;
bild._xscale = -100*dimension*Math.sin(bild.wphase+mwinkel+piwinkel);
bild._yscale = 100*dimension;
bild.swapDepths(-(int(bild.z)));
}
}
};
};
//(Bilderliste, PosBreite, PosHoehe, Sichtbarkeit, Zoom, PosTiefe, Radius, Rahmen, Drehfaktor);
zentrum.rotation_menue(menuebilder, Stage.width/2, 410, 100, 170, 900, 700, true, -10000);
|
Das Problem ist, so glaube ich, in Zeile 19:
ActionScript:1 | container2.attachMovie("mc_detail"+i, "mc_detail"+i, (i+100));
|
Schreibe ich es so, wird nichts in den zweiten Container geladen.
Mit dieser Schreibweise wird der Movieclip "mc_detail0" in den zweiten Container geladen:
ActionScript:1 | container2.attachMovie("mc_detail0", "mc_detail"+i, (i+100));
|
Aber jetzt wird natürlich für jedes Bild immer derselbe Movieclip in den zweiten Container geladen. Das soll nicht so sein. Ich will für jedes Bild (big0.jpg - bild18.jpg) den entsprechenden Movieclip (mc_detail0 - mc_detail18) in den zweiten Container geladen haben.
Ich hoffe ich habe mein Problem einigermaßen verständlich geschildert.
Hat da irgendjemand eine Idee?? |