vinTagesworld Flash forum

Stel zelf een vraag in het flash forum!


alpha verandert niet
blokje door W0utah op 25-01-07 om 18:03
Ik ben nu een intro aan het maken voor mijn eindwerk maar ik zit met een probleem.

De hele intro is gemaakt met actionscript omdat er toch niet veel van die "zotte" effecten in voorkomen.

Nu mijn probleem is: In het begin zie je allemaal blokjes op je scherm komen (4 op 4 blokjes), als dat gedaan is moeten er 2 blokjes naar alpha 0 gaan en op die plaats komt mijn logo.

Mijn logo komt er wel, maar de blokjes gaan niet weg, ik heb met trace() als hun alpha waarde bekeken en daar gaat ze altijd omlaag, waarom dan niet als ik het test?

Hier is mijn code.

actionscript code

nieuw();
i = 0;
j = 20;
// aantal frames tot de 4 blokjes weggaan
k = 0;
xPositie = 50;
// de begin positie van het 1ste blokje
yPositie = 50;
// de begin positie van het 1ste blokje
function nieuw() {
  this.onEnterFrame = function() {
    if (i<16) {
      var blokje:MovieClip = attachMovie("blok", "blok"+i, this.getNextHighestDepth());
      blokje._x = xPositie;
      blokje._y = yPositie;
    } else if (i>=16) {
      logo();
    }
    trace(blok6._alpha);
  };
  interval = setInterval(volgende, 200);
}
function volgende() {
  i++;
  if (i == 4) {
    // als er 4 blokjes zijn moet het 5de naar beneden en terug naar links
    yPositie += 100;
    xPositie -= 400;
  } else if (i == 8) {
    // als er 8 blokjes zijn moet het 9de naar beneden en terug naar links
    yPositie += 100;
    xPositie -= 400;
  } else if (i == 12) {
    // als er 12 blokjes zijn moet het 13de naar beneden en terug naar links
    yPositie += 100;
    xPositie -= 400;
  } else if (i == 16) {
    // als er 16 blokjes zijn moet het interval stoppen
    clearInterval(interval);
  }
  xPositie += 100;
}
function logo() {
  if (j<=0) {
    // de 2 middelste blokjes naar alpha 0 brengen
    blok5._alpha -= 10;
    blok6._alpha -= 10;
  } else {
    j--;
  }
  if (blok6._alpha<=0) {
    var logo:MovieClip = attachMovie("logo", "logo", this.getNextHighestDepth());
    logo._x = 200;
    logo._y = 150;
    teksten = setInterval(toonTekst, 200);
  }
}
function toonTekst() {
  k++;
  var tekst:MovieClip = attachMovie("tekst", "tekst"+k, this.getNextHighestDepth());
  tekst._x = 400;
  tekst._y = 150;
}
stop();
 


laatst ge-edit op: 25-01-07 om 18:04


Reply
blokje door vinTage op 25-01-07 om 19:52
Je plaatst met je functies blokken over elkaar, je kan maar één MC AS geven via de instancenaam, dus blijf je er altijd een zien.
Je kan controleren dat er echt blokken over elkaar heen kwamen door ze alpha 50 te geven en ze (om te testen) een on(release){removeMovieClip(this);} mee te geven.

Onderstaande werkt wel:
actionscript code

i = 0;
j = 20;
k = 0;
xPositie = 50;
yPositie = 50;
function nieuw() {
  if (i<16) {
    attachMovie("blok", "blok"+i, this.getNextHighestDepth(), {_x:xPositie, _y:yPositie});
  } else if (i>=16) {
    logo();
  }
}
interval = setInterval(volgende, 200);
function volgende() {
  nieuw();
  i++;
  if (i == 4) {
    yPositie += 100;
    xPositie -= 400;
  } else if (i == 8) {
    yPositie += 100;
    xPositie -= 400;
  } else if (i == 12) {
    yPositie += 100;
    xPositie -= 400;
  } else if (i == 16) {
    clearInterval(interval);
    fadeOut = setInterval(logo, 100);
  }
  xPositie += 100;
}
function logo() {
  trace(j+" tellen voor het uitfaden");
  if (j<0) {
    blok5._alpha -= 10;
    blok6._alpha -= 10;
  } else {
    j--;
  }
  if (blok6._alpha<=0) {
    clearInterval(fadeOut);
    var logo:MovieClip = attachMovie("logo", "logo", this.getNextHighestDepth());
    logo._x = 200;
    logo._y = 150;
    teksten = setInterval(toonTekst, 200);
  }
}
function toonTekst() {
  k++;
  var tekst:MovieClip = attachMovie("tekst", "tekst"+k, this.getNextHighestDepth());
  tekst._x = 400;
  tekst._y = 150;
}
stop();
 



 
Reply
blokje door W0utah op 25-01-07 om 20:43
ok, heb nu de fouten in mijn script verbetert (zo weet ik wat ik fout doe), maar ik zit nog met een probleem, als die 2 blokjes zijn outgefade, dan komt mijn logo maar het verdwijnt ook direct en het blokje linksboven verdwijnt ook.

actionscript code

i = 0;
// i telt het aantal blokjes
j = 10;
// aantal frames tot de 4 blokjes weggaan
k = 0;
xPositie = 50;
// de begin positie van het 1ste blokje
yPositie = 50;
// de begin positie van het 1ste blokje
interval = setInterval(volgende, 200);
function nieuw() {
  if (i<16) {
    var blokje:MovieClip = attachMovie("blok", "blok"+i, this.getNextHighestDepth());
    blokje._x = xPositie;
    blokje._y = yPositie;
  } else if (i>=16) {
    logo();
  }
}
function volgende() {
  nieuw();
  i++;
  if (i == 4) {
    // als er 4 blokjes zijn moet het 5de naar beneden en terug naar links
    yPositie += 100;
    xPositie -= 400;
  } else if (i == 8) {
    // als er 8 blokjes zijn moet het 9de naar beneden en terug naar links
    yPositie += 100;
    xPositie -= 400;
  } else if (i == 12) {
    // als er 12 blokjes zijn moet het 13de naar beneden en terug naar links
    yPositie += 100;
    xPositie -= 400;
  } else if (i == 16) {
    // als er 16 blokjes zijn moet het interval stoppen
    clearInterval(interval);
    fadeOut = setInterval(logo, 100);
  }
  xPositie += 100;
}
function logo() {
  if (j<=0) {
    // de 2 middelste blokjes naar alpha 0 brengen
    blok5._alpha -= 10;
    blok6._alpha -= 10;
  } else {
    j--;
  }
  if (blok6._alpha<=0) {
    var logo:MovieClip = attachMovie("logo", "logo", this.getNextHighestDepth());
    logo._x = 200;
    logo._y = 150;
    teksten = setInterval(toonTekst, 200);
    clearInterval(fadeOut);
  }
}
function toonTekst() {
  k++;
  var tekst:MovieClip = attachMovie("tekst", "tekst"+k, this.getNextHighestDepth());
  tekst._x = 400;
  tekst._y = 150;
}
stop();
 


 
Reply
blokje door vinTage op 25-01-07 om 20:57
Ik had mijn code gemaakt met een blokje, en daar verdween niks en deed precies wat er moest gebeuren (uitfaden van blok 5 en 6), maar ik had geen logos en texten etc.
Zet anders je fla online, dan zal ik later ns kijken (ben nu mn flashcase aan het eindigen, hopelijk geet hij straks online)

 
Reply
blokje door W0utah op 25-01-07 om 21:06
het heeft volgens mij iets met die tekst te maken dat er nog zou moeten bijkomen.

maar hij staat online

zou je willen zeggen wanner je hem er hebt afgehaald?

hier pushen

 
Reply
blokje door vinTage op 25-01-07 om 21:50
Kheb em gezien en getest met mijn code, het probleem zit hem simpel in de depths van de movieclips, als je onderstaande code gewoon letterlijk copierd werkt het:

actionscript code


i = 0;
j = 20;
k = 0;
xPositie = 50;
yPositie = 50;
function nieuw() {
        if (i<16) {
                attachMovie("blok", "blok"+i, this.getNextHighestDepth(), {_x:xPositie, _y:yPositie});
        } else if (i>=16) {
                logo();
        }
}
interval = setInterval(volgende, 200);
function volgende() {
        nieuw();
        i++;
        if (i == 4) {
                yPositie += 100;
                xPositie -= 400;
        } else if (i == 8) {
                yPositie += 100;
                xPositie -= 400;
        } else if (i == 12) {
                yPositie += 100;
                xPositie -= 400;
        } else if (i == 16) {
                clearInterval(interval);
                fadeOut = setInterval(logo, 100);
        }
        xPositie += 100;
}
function logo() {
        //trace(j+" tellen voor het uitfaden");
        if (j<0) {
                blok5._alpha -= 10;
                blok6._alpha -= 10;
        } else {
                j--;
        }
        if (blok6._alpha<=0) {
                clearInterval(fadeOut);
//depth aangepast (boven tekst gezet)
                var logo:MovieClip = attachMovie("logo", "logo", 25);
                logo._x = 200;
                logo._y = 150;
                teksten = setInterval(toonTekst, 200);
        }
}
function toonTekst() {
        k++;
//depth aangepast (onder logo gezet)
        var tekst:MovieClip = attachMovie("tekst", "tekst"+k, 24);
        tekst._x = 400;
        tekst._y = 150;
}
stop();
 


 
Reply
blokje door W0utah op 25-01-07 om 21:54
perfect nu, precies wat ik nodig had, maar knsap iets niet, die getNextHighestDepth voorwat dient die dan?

Want met die dieptes ben ik nog niet zo goed mee

 
Reply
blokje door vinTage op 25-01-07 om 21:55
simpel:
als iets depth 1 heeft staat dat onder iets wat depth 2 heeft, je kan dit ongeveer vergelijken met layers, waar layer 1 de onderste laag is, en layer 2 de bovenste en layer3 de allerbovenste etc etc.

getNextHighestDepth() is dus ALTIJD de hoogste depth

ps, mn flashCase staat online :P

laatst ge-edit op: 25-01-07 om 21:57
Reply
blokje door W0utah op 25-01-07 om 21:58
waarom werkt de hooghste depth dan niet bij men tekst?

ps: heb wat fouten gevonden in je flashCase

 
Reply
blokje door vinTage op 25-01-07 om 22:03
kheb je fla alweer weggegooid, maar de text gingss OVER je logo heen (dacht ik)

 
Reply
blokje door W0utah op 25-01-07 om 22:05
die text gaat normaal nooit over mijn logo moeten komen, die gaat in zo'n vierkantje staan.

Mijn bedoeling was om 4 of meerdere textvakken te maken via attachMovie en daar dan random tekst in te zetten.

 
Dit topic is gesloten.