PDA

Volledige versie bekijken : Kun je bij het raken van 2 beweegende mc's een andere mc laten afspelen?


ikbentj
%Europe/Berlin %532 %2005, 13:47
Ik heb (alweer :I ) een probleempje. Ik wil graag dat mc1 begint te spelen zodra mc2, mc3 raakt. Is dit mogelijk? Voor de duidelijkheid: mc2 beweegt, en raakt soms mc3. Hoe "zeg je" dit in Actionscript?

peres
%Europe/Berlin %537 %2005, 13:53
ik gebruik altijd dit:

Op MC2:
onClipEvent (enterFrame) {
if (hitTest(_root.MC3)==true) {
MC1.gotoAndPlay();
}
}

maar dit zou vast veel beter kunnen

ikbentj
%Europe/Berlin %552 %2005, 14:16
Hij doet het niet, ik heb een printscreen bij de bijlage gestuurd voor de duidelijkheid...

mc1 = mc_keutel
mc2 = mc_staart
mc3 = mc_hit

zodra ik met de muis over mc_staart beweeg, roteert deze zo, dat ie mc_hit raakt. Nu hoort mc_keutel te starten, maar dat doet ie niet. Zodra ik nu mijn muis van mc_staart weghaal, roteert mc_staart weer naar zijn normale postitie.

Dauntless
%Europe/Berlin %556 %2005, 14:20
Hou ook rekening met de paden en instancenamen...
http://www.dauntless.be/flashfocus/pics/instancenaam.jpg

ikbentj
%Europe/Berlin %558 %2005, 14:24
weet ik :)

peres
%Europe/Berlin %563 %2005, 14:30
MC1.gotoAndPlay();

tussen de haakjes moet je nog je frame nr. of framelabel neerzetten


/edit: sorry ik zag dat je dat al had staan

ikbentj
%Europe/Berlin %569 %2005, 14:40
ik heb een btn genaamd staart_btn, die zorgt ervoor dat bij een onrollover de staart begint te roteren. Anders zou je met de muis de staart moeten blijven volgen, om het mc_hit te raken. staart_btn be-invloed ook niet de andere mc's. Ik bedoel: zou het niet kunnen liggen aan staart_btn. Lijkt mij onwaarschijnlijk, maar toch noem ik het even.



#include "lmc_tween.as"

var rotate = ["_rotation"];
var time = 0.75;
var wait = 0.5;
var ease = "easeoutBounce";

var Over = [100];
var Out = [0];

staart_btn.onRollOver = function(){
mc_staart.tween(rotate, Over, time, ease);
}
staart_btn.onRollOut = function(){
mc_staart.tween(rotate, Out, time, ease);
}

ikbentj
%Europe/Berlin %757 %2005, 19:10
Peres, ik denk dat ik weet waarom hij het niet doet. Weet jij hoe je in Actionscript zegt dat ie om de 10 milliseconden (of meer, het is maar een testje) die hittest moet doen? dus :


onClipEvent(enterFrame) {
if (hitTest(mc_hit)==true) {
mc_keutel.gotoAndPlay(2);
}


steeds herhalen om de 10 milliseconden

peres
%Europe/Berlin %763 %2005, 19:19
hmm... volgens mij checkt ie al 'elk moment'. maar wil je misschien even je .fla posten, want ik weet zo niet wat er fout is...

ikbentj
%Europe/Berlin %769 %2005, 19:28
Hier is ie in een zipje... (bij de bijlage)

peres
%Europe/Berlin %938 %2005, 23:30
pfff... ik zou zo ook niet weten waarom de hittest het niet doet. wel heb ik een alternatieve manier gevonden & gemaakt:

.FLA (http://members.lycos.nl/ukay/koetje.fla)

ik hoop dat je er wat aan hebt!

Dauntless
%Europe/Berlin %092 %2005, 03:12
Maak van je code:
onClipEvent(enterFrame) {
if (this.hitTest(this._parent.mc_hit) && this._parent.mc_keutel._currentframe == 1) {
this._parent.mc_keutel.gotoAndPlay(2);
}
if (!this.hitTest(this._parent.mc_hit)) {
this._parent.mc_staart.gotoAndPlay(1);
}
}

Zet dan een stop() op de laatste frame van die keutel.

ikbentj
%Europe/Berlin %438 %2005, 11:31
Heel erg bedankt! Alleen nog even een opmerking op het idee van Dauntless. Als ik zijn script verander in wat ik eerst had, schiet de koe zijn keutel en herhaald dat, tot dat de staart het hit punt verlaat. Als je vervolgens weer met je muis over de staart beweegt, en de staart hit het hitpunt, gaat de koe weer beginnen met schieten. Maar het is de bedoeling dat hij maar 1 keer schiet per hit. Daarom doe je een stop(); op de laatste frame van de keutel. Alleen nu krijg je alleen bij de eerste rollover een schietende keutel. Als je dan met de muis weer de staart verlaat, en opnieuw erover heen gaat gebeurd er niks!

Voorbeeld:
http://members.lycos.nl/ikbentj/koetje.html

Niet heel erg belangrijk, want ik heb het antwoord al (alternatief peres) maar toch zeg ik het ff.

Dauntless
%Europe/Berlin %453 %2005, 11:52
Maar het is de bedoeling dat hij maar 1 keer schiet per hit. Daarom doe je een stop();

Ja, dat zei ik toch? ;)
Maar als je die vraag stelt weet je duidelijk niet hoe het script werkt... Hij kijkt namelijk of de _currentframe 1 is. (Hij kijkt dus of de keutel nog niet aan het spelen is). Dat moet je oplossen door een check op die tween te zetten en zien wanneer de staart terug beneden is ('k geloof dat er van die classe een onTweenComplete was of zo...). Als die staart beneden is moet je de keutel terug op frame 1 zetten.

ikbentj
%Europe/Berlin %470 %2005, 12:16
Bedankt, kga ut proberen... :)