[Flash] Alpha van een object veranderen.

Pagina: 1
Acties:

  • akakiwi
  • Registratie: September 2000
  • Laatst online: 20-03 11:13

akakiwi

I believe in the ruling class.

Topicstarter
Goede morgen,

Ik ben weer eens wat in Flash 5 aan het rommelen, en heb het volgende probleempje.
Ik heb meerdere layers, en een van die layers bevat een object (Circles genaamd, van het type Movie Clip) en bij een on(rollOver) wordt er een motion tween aangezet dat in die movieclip zit, maar wil ik teven de alpha van een andere layer (MuchuText genaamd, van het type Graphic) op 100% zetten.
Wanneer je met de muis van het object Circles af gaat, moet de alpha van de layer MuchuText weer op 0% gezet worden.

Dit kan niet moeilijk zijn vind ik, alleen krijg ik zowel hier in de search als op FlashPlanet.com niet gevonden hoe dat moet.

Ik ga weer verder zoeken, dus misschien kom ik er alsnog zelf uit.
Voor diegenen die willen helpen, alvast bedankt, en je kunt hier de flash bestanden downloaden.
Je hebt eigenlijk alleen intro.fla nodig, maar, misschien kun je zelf nog leuke dingen doen met de andere bestanden. ;)

Groeten......

| Life is a game (and games are fun) | homepage |


Verwijderd

zelf gebruik ik nooit graphics, maar altijd movieClips. Die zijn gewoon veel handiger, en in flash 5.0 overigens de enige die je een instance naam kan meegeven. Dus verander muchuText eerst eens naar een MC.

Dan kan je dit doen :
code:
1
2
3
4
5
6
onMouseOver () {
    [instanceNaam].alpha = 0;
}
onMouseOut () {
    [instanceNaam].alpha = 100;
}


Overigens kun je ook die tween dmv. actionScript doen (wat ik aanraad), zoiets als:
eerste frame :
if ([instanceNaam].alpha] > 0) [instanceNaam].alpha -= 10;
tweede frame :
gotoAndPlay (eerste frame);

zo kan je het ook doen dat hij weer in fade, dan word > dus < en het - teken word een + teken. Hierbij is 10 variabel, het bepaald de snelheid van het in en/of uitfaden.

Verwijderd

gebruik idd zoveel mogelijk MovieClips (MC). Wil je gebruik maken van een plaatje, jpeg oid, zet die dan in een MC.

Overigens, properties van MC's beginnen altijd met een _. Dus als je de alpha wilt veranderen, moet je MC._alpha veranderen.

Verwijderd

[quote
Overigens, properties van MC's beginnen altijd met een _. Dus als je de alpha wilt veranderen, moet je MC._alpha veranderen.[/quote]

helemaal gelijk, my mistake, al een tijdje niks meer gedaan in flash. Roep properties altijd aan met een underscore!

  • akakiwi
  • Registratie: September 2000
  • Laatst online: 20-03 11:13

akakiwi

I believe in the ruling class.

Topicstarter
Bedankt voor de info.
Ik had, wat jij aangaf al gedaan, maar ik kreeg dat niet aan de praat:?
Snap jij het, snap ik het?
Dus, heb ik nu het volgende gedaan.

code:
1
2
3
4
5
6
7
8
on (rollOver) {
    nextFrame ();
    setProperty ("_level0.MuchuText", _alpha, "100");
}
on (rollOut) {
    setProperty ("_level0.MuchuText", _alpha, "0");
    gotoAndStop (1);
}


Daarmee geef je aan dat je in het hoofdobject (_level0) het object MuchText de Alpha (met underscore, liggend streepje, _ !!!!) wilt wijzigen.

Het laten zien ervan lukt nu, alleen het hidden nog niet.

edit:

Haha, had jullie laatste 2 commentaren nog niet gelezen, vandaar mijn opmerking over de underscore. :)

[ Voor 0% gewijzigd door akakiwi op 21-08-2002 09:28 . Reden: Te lang geen refresh [F5] gedaan ]

| Life is a game (and games are fun) | homepage |


Verwijderd

akakiwi schreef op 21 augustus 2002 @ 09:27:
code:
1
2
3
4
5
6
7
8
on (rollOver) {
    nextFrame ();
    setProperty ("_level0.MuchuText", _alpha, "100");
}
on (rollOut) {
    setProperty ("_level0.MuchuText", _alpha, "0");
    gotoAndStop (1);
}
1. zet die nextFrame(); 's nadat je de property hebt gewijzigd.
2. je maakt gebruik van flash5; het is dan makkelijker om te doen:
code:
1
_root.MuchuText._alpha = 100;


(_level0 is hetzelfde als _root)
Daarmee geef je aan dat je in het hoofdobject (_level0) het object MuchText de Alpha (met underscore, liggend streepje, _ !!!!) wilt wijzigen.
MuchuText moet de naam van een MC zijn en niet een layer, zoals in je post helemaal boven aan staat.

  • akakiwi
  • Registratie: September 2000
  • Laatst online: 20-03 11:13

akakiwi

I believe in the ruling class.

Topicstarter
Verwijderd schreef op 21 augustus 2002 @ 09:10:
zelf gebruik ik nooit graphics, maar altijd movieClips. Die zijn gewoon veel handiger, en in flash 5.0 overigens de enige die je een instance naam kan meegeven. Dus verander muchuText eerst eens naar een MC.

Dan kan je dit doen :
code:
1
2
3
4
5
6
onMouseOver () {
    [instanceNaam].alpha = 0;
}
onMouseOut () {
    [instanceNaam].alpha = 100;
}


Overigens kun je ook die tween dmv. actionScript doen (wat ik aanraad), zoiets als:
eerste frame :
if ([instanceNaam].alpha] > 0) [instanceNaam].alpha -= 10;
tweede frame :
gotoAndPlay (eerste frame);

zo kan je het ook doen dat hij weer in fade, dan word > dus < en het - teken word een + teken. Hierbij is 10 variabel, het bepaald de snelheid van het in en/of uitfaden.
Dat werkt niet helemaal.
Want, het gaat zo snel dat het fade-in/out niet eens te zien is, en ik werk nu slechts op een PII 233, dus daar kan het niet aan liggen.
Ik heb al wel naar pause, sleep functies gezocht, maar die zijn er niet in flash voor zover ik daarover kan oordelen.
Heb nu het volgende:
code:
1
2
3
while (_Level0.MuchuText._alpha < 100) {
    setProperty("_root.MuchuText", _alpha, getProperty(_root.MuchuText, _alpha) + 10);
}


Zoals je ziet maakt het gebruik van _root en _level0 door elkaar niets uit :)

| Life is a game (and games are fun) | homepage |


Verwijderd

akakiwi schreef op 21 augustus 2002 @ 09:53:
[...]

Want, het gaat zo snel dat het fade-in/out niet eens te zien is, en ik werk nu slechts op een PII 233, dus daar kan het niet aan liggen.
Ik heb al wel naar pause, sleep functies gezocht, maar die zijn er niet in flash voor zover ik daarover kan oordelen.
die zul je ook niet vinden, want die zijn er gewoon niet :P. Wil je een soort van interval/vertraging, dan zul je t met 3 frames moeten doen. Een voorbeeld:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
// frame1
nexttime = getTimer() + 500;
object._alpha -= 10;

// frame2
// geen code

// frame3
if (nexttime < getTimer()) { // tijd is verstreken
  gotoAndPlay(_currentframe-2);
} else {
  gotoAndPlay(_currentframe-1);
}

  • akakiwi
  • Registratie: September 2000
  • Laatst online: 20-03 11:13

akakiwi

I believe in the ruling class.

Topicstarter
He DarthRaider,

Ik heb jou even toegevoegd aan mijn ICQ lijst, want, ik had nog een vraag.
Het laten zien van het Object lukt, maar het laten verdwijnen niet.
code:
1
2
3
4
5
6
7
8
9
10
11
12
on (rollOver) {
    while (_root.MuchuText._alpha < 100) {
        setProperty (_root.MuchuText, _alpha, getProperty(_root.MuchuText, _alpha) + 10);
    }
    nextFrame ();
}
on (rollOut) {
    while (_root.MuchuText._alpha > 0) {
        setProperty (_root.MuchuText, _alpha, getProperty(_root.MuchuText, _alpha) - 10);
    }
    gotoAndStop (1);
}


Wanneer ik de code van on(rollOut) bij on(rollOver) zet, werkt het wel:? :?
Enig idee hoe dat kan komen??

| Life is a game (and games are fun) | homepage |


Verwijderd

stop met setProperty, dat is Flash 4.0 ... 5.0 maakt gebruik van dezelfde manier als javascript ... dus

_root.muchuText._alpha +=10;

is het zelfde als

setProperty (_root.MuchuText, _alpha, getProperty(_root.MuchuText, _alpha) + 10);

verder zou ik niet met _root werken, gebruik liever _parent ... dus als deze code indezelfde MC staat zet je er niks voor, zit hij in een movieclip die in de root staat, gebruik dan 1x _parent .... etc.
_parent wijst dus 1 level terug. Je kan dus ook iets als dit krijgen
_parent._parent.muchuText.knopa._alpha -= 10; of iets dergelijks ...

voor de rets kun je een vertraging maken met frames ... maar ook door er een extra variabele in te zetten ... bv. count ... count krijgt aldoor 1 extra waarde in de tweede frame en gaat dan weer naar frame 1 toe. Vervolgens kijk je in frame 1 of het een even of oneven getal is

Verwijderd

Dat werkt niet helemaal.
Want, het gaat zo snel dat het fade-in/out niet eens te zien is, en ik werk nu slechts op een PII 233, dus daar kan het niet aan liggen.
Ik heb al wel naar pause, sleep functies gezocht, maar die zijn er niet in flash voor zover ik daarover kan oordelen.
Logisch dat het niet infade ... je geeft nl. aan dat hij direct een alpha van 100% moet hebben of van 0% zonder een fade ...

je kan gewoon met 2 frames werken, je Movie op 25 fps zetten, in de eerste aangeven dat de huidige alpha met steeds 10 eraf of erbij op moet worden berekend (zoals 1 post hierboven beschreven) en dan werkt hij zeker weten goed, zonder rare vertragingen ed. erin te zetten. En anders zet je die variabele van 10 terug naar 1... of nog onder de 1 bv. 0.1 ofzo ...

niet zo moeilijk denken
Pagina: 1