HILFE: Dringend Actionscript-Hilfe gesucht.

  • Hallo Flash-Fans!
    wir haben ein Problem: Und zwar haben wir eine Art Soundcollage erstellt.
    wir haben Movieclips gebaut die im loop eine grafik untermalt mit sound abspielen.
    diese movieclips ziehe ich auf die bühne.
    dann gibt es noch einen lautstärkemanipulator - dieser soll die lautstärke der auf der bühne liegenden Grafiken verändern.
    das passiert so:
    der manipulator misst aus, welche ecke der bühne die weiteste ist und wie weit er von den grafiken entfernt ist (pytagoras).
    wenn die grafik genau auf dem manipulator liegt, wird der ton ganz laut (100%)
    wenn manipulator und grafik am weitesten entfernt ist wird die lautstärke 0%
    Grafik und manipulator können bewegt werden.
    das klappt auch alles soweit.
    jetzt kommt das problem: bei zwei grafiken auf der bühne - scheint die eine grafik die andere zu überschreiben und wenn eine grafik weit wegbewegt wird, also der ton der einenen grafik bei 0% sein müsste, die andere hingegen genau auf dem manipulator liegt also eigentlich 100% haben müsste, orientiert sich die lautstärke nur an der einen grafik. das heißt, dass beide grafiken 0% werden.
    Bewege ich die andere (die eigentlich 100% habenmüsste) so bleibt sie stumm.
    oh weh ich hoffe ich hab das so erklärt, dass man schnallt was ich meine...
    hier schick ich mal das script mit - wir sind über jeden Hinweis dankbar
    und hier das script:

    LA04_a / MEL04_a sind die Audiodateien, die in die MC eingebunden sind (liegen in der bibliothek

    LA04 / MEL04 sind die MC, die auch in der bibliothek liegen.


    var my_sound:Sound = new Sound(mymov);
    mymov = MEL04_mc;
    mymov = LA04_mc;
    // ...


    buehnenbreite = 800;
    buehnenhoehe = 600;

    //fscommand("fullscreen","true");
    //fscommand("allowscale","false");


    //sounds attachen
    //var my_sound1:Sound = new Sound(MEL04_mc);
    //var my_sound2:Sound = new Sound(LA04_mc);
    //my_sound1.attachSound("LA04_a");
    //my_sound1.start();


    maipulator1Dist = 0;
    prozAusrechnen(MEL04_mc);
    prozAusrechnen(LA04_mc);


    //Manipulator Lautstaerke
    laut_mani_mc.onPress = function() {

    this.startDrag(false, begrenzung_mc._x, begrenzung_mc._y, begrenzung_mc._x + begrenzung_mc._width, begrenzung_mc._y + begrenzung_mc._height );

    this.onEnterFrame = function(){
    trace("-----------------------------");
    //prozAusrechnen(LA04_mc);
    prozAusrechnen(this);
    }
    }


    laut_mani_mc.onRelease = laut_mani_mc.onReleaseOutside = function() {

    this.stopDrag();
    //delete this.onEnterFrame;
    }


    //Ton
    LA04_mc.onPress = function() {

    this.startDrag(false, begrenzung_mc._x, begrenzung_mc._y, begrenzung_mc._x + begrenzung_mc._width, begrenzung_mc._y + begrenzung_mc._height );

    this.onEnterFrame = function(){
    distanzAusrechnen(this);
    }
    }

    LA04_mc.onRelease = LA04_mc.onReleaseOutside = function() {

    this.stopDrag();
    delete this.onEnterFrame;
    }


    //Ton2
    MEL04_mc.onPress = function() {

    this.startDrag(false, begrenzung_mc._x, begrenzung_mc._y, begrenzung_mc._x + begrenzung_mc._width, begrenzung_mc._y + begrenzung_mc._height );

    this.onEnterFrame = function(){
    distanzAusrechnen(this);
    }
    }

    MEL04_mc.onRelease = MEL04_mc.onReleaseOutside = function() {

    this.stopDrag();
    delete this.onEnterFrame;
    }


    function prozAusrechnen(whatClip) {

    trace ("ich bin da: " + whatClip + "//" + begrenzung_mc._x);

    //ecke entfernung oben links = ecke1
    distx2 = (whatClip._x - begrenzung_mc._x)*(whatClip._x - begrenzung_mc._x);
    disty2 = (whatClip._y - begrenzung_mc._y)*(whatClip._y - begrenzung_mc._y);

    trace("XX: " + whatClip._x);

    distsum = distx2 + disty2;
    distentEcke1 = Math.sqrt(distsum);
    //ecke1.text = distentEcke1;
    ecke1.text = distentEcke1;
    trace("vvvv: " + distentEcke1);

    //ecke entfernung oben rechts = ecke2
    distx2 = ((begrenzung_mc._x + begrenzung_mc._width) - whatClip._x)*((begrenzung_mc._x + begrenzung_mc._width) - whatClip._x)
    //disty2 = whatClip._y - begrenzung_mc._y*whatClip._y - begrenzung_mc._y

    distsum = distx2 + disty2
    distentEcke2 = Math.sqrt(distsum);
    ecke2.text = distentEcke2;

    //ecke entfernung unten rechts = ecke3

    //distx2 = ((begrenzung_mc._x + begrenzung_mc._width) - whatClip._x)*((begrenzung_mc._x + begrenzung_mc._width) - whatClip._x)
    disty2 = ((begrenzung_mc._y + begrenzung_mc._height) - whatClip._y)*((begrenzung_mc._y + begrenzung_mc._height) - whatClip._y)

    distsum = distx2 + disty2;
    distentEcke3 = Math.sqrt(distsum);
    ecke3.text = distentEcke3;

    //ecke entfernung unten links = ecke4

    distx2 = (whatClip._x - begrenzung_mc._x)*(whatClip._x - begrenzung_mc._x)
    //disty2 = ((begrenzung_mc._y + begrenzung_mc._height) - whatClip._y)*((begrenzung_mc._y + begrenzung_mc._height) - whatClip._y)

    distsum = distx2 + disty2
    distentEcke4 = Math.sqrt(distsum);
    ecke4.text = distentEcke4;
    trace(" ---- " + ecke4);
    weitesteEcke = distentEcke1;
    if (distentEcke2>weitesteEcke) {
    weitesteEcke = distentEcke2;
    }

    if (distentEcke3>weitesteEcke) {
    weitesteEcke = distentEcke3;
    }

    if (distentEcke4>weitesteEcke) {
    weitesteEcke = distentEcke4;
    }
    trace ("weiteste ecke: " + weitesteEcke);
    maipulator1Dist = weitesteEcke;
    distanzAusrechnen(LA04_mc); distanzAusrechnen(MEL04_mc);


    }


    function distanzAusrechnen(meinMovieclip) {

    distx = Math.abs(meinMovieclip._x - laut_mani_mc._x);
    disty = Math.abs(laut_mani_mc._y - meinMovieclip._y);
    myDist = Math.sqrt((disty*disty) + (distx*distx));
    trace("ton ist soviel pixel von manipulator entfen: " + myDist);

    perc = Math.abs(Math.round((100*myDist)/maipulator1Dist) - 100);
    myperc.text =perc + "%";
    my_sound.setVolume(perc);


    }