ok ok, quando hai tempo![]()
ok ok, quando hai tempo![]()
JayMare
if (this.hitTest(_root._xmouse, _root._ymouse)) ...inutile dire che questa parte di codice c'e* anche se mi sono dimenticato di postarla nel forum.
JayMare
eccomi...
allora secondo me se ho capito cosa ti serve...userei:
poi ai pulsanti dai ogni volta la posizione ke vuoicodice:onClipEvent (load) { finex = _x; finey = _y; accellerazione = 3; inerzia = 2.5; } onClipEvent (enterFrame) { iniziox = _x; inizioy = _y; spostamentoy = (spostamentoy+(finey-inizioy)/accellerazione)/inerzia; _y += spostamentoy; spostamentox = (spostamentox+(finex-iniziox)/accellerazione)/inerzia; _x += spostamentox; }
dai un nome istanza al mc tipo pippo
e poi ai pulsanti kambi coordiante
_root.pippo.finex = 100;
_root.pippo.finey = 150;
![]()
PS= anke oggi sarò poko presente
ma prima di dare un action ai mc C1 C2... devo controllare dove si trova il mc B, se si trova in centro devo dire a C1 C2... di mandarlo a destra, se si trova a destra devo dire a C1 C2 di mandarlo a sinistra. Inoltre i mc C1 C2... sono all'interno del mc B.
Ma tutte quelle actions sono per i mc C ? così:?
onClipEvent (load) {
finex = _x;
finey = _y;
accellerazione = 3;
inerzia = 2.5;
}
onClipEvent (enterFrame) {
iniziox = _x;
inizioy = _y;
spostamentoy = (spostamentoy+(finey-inizioy)/accellerazione)/inerzia;
_y += spostamentoy;
spostamentox = (spostamentox+(finex-iniziox)/accellerazione)/inerzia;
_x += spostamentox;
}
onClipEvent (mouseDown) {
if (this.hitTest(_root._xmouse, _root._ymouse)) {
_root.A.B.finex = 146.8;
_root.A.B.finey = 229.25;
}
}
JayMare
fai un controllo delle coordinate con un if
a dopo
![]()
cio' provato ma non funzia, guarda cosa ho fatto:
Premetto che i mc C1 C2 C3 sono nel mc B che a sua volta e' nel mc A.
1. Nel primo frame del mc A, B si sposta da destra al centro come mi hai detto di fare ed e' OK :
onClipEvent (load) {
_x = 146.8;
_y = -229.25;
lanciox = 0;
lancioy = -160;
}
onClipEvent (enterFrame) {
differenzax = _x-lanciox;
differenzay = _y-lancioy;
_x = _x-differenzax/5;
_y = _y-differenzay/5;
}
+ gli do uno stop così si ferma al primo frame
2. Nel mc B do queste actions ai mc C1 C2 e C3 (Queste actions dovrebbero controllare il movimento di B, ovvero mandarlo dal centro a destra o da destra al centro a seconda di dove si trova):
onClipEvent (mouseDown) {
if (this.hitTest(_root._xmouse, _root._ymouse)){
if (_root.A.B._x == 146.8 && _root.A.B._y == -229.25) //se quindi B si trova a destra {
_x = 146.8;
_y = -229.25;
lanciox = 0;
lancioy = -160;
differenzax = _x-lanciox;
differenzay = _y-lancioy;
_root.A.B._x = _x-differenzax/5;
_root.A.B._y = _y-differenzay/5;
} else //se B si trova a alcentro{
_x = 0;
_y = -160;
lanciox = 146.8;
lancioy = -229.25;
differenzax = _x-lanciox;
differenzay = _y-lancioy;
_root.A.B._x = _x-differenzax/5;
_root.A.B._y = _y-differenzay/5;
}
}
}
...ma non funge, dove sbaglio?
JayMare
non devi riscrivere tutte le azioni !
lo script ke ti ho dato va solo sui mc ke devono muoversi e basta !
al controllo dici solo
if(al centro){
_root.mc.finex=2112;
_root.mc.finey=554;
}else{
_root.mc.finex=100;
_root.mc.finey=100;
}
senza ripetere tutto lo script
poi metti nel onClipEvent (enterFrame) un trace(_root.tuomc._x)
kosì kontrolli dov'è
credo di avere capito, pero' il mc e' in un solo frame ed ha gia' questa action (che lo fa entrare all'inizio):
onClipEvent (load) {
_x = 146.8;
_y = -229.25;
lanciox = 0;
lancioy = -160;
}
onClipEvent (enterFrame) {
differenzax = _x-lanciox;
differenzay = _y-lancioy;
_x = _x-differenzax/5;
_y = _y-differenzay/5;
}
questa action quindi...
onClipEvent (load) {
finex = _x;
finey = _y;
accellerazione = 3;
inerzia = 2.5;
}
onClipEvent (enterFrame) {
iniziox = _x;
inizioy = _y;
spostamentoy = (spostamentoy+(finey-inizioy)/accellerazione)/inerzia;
_y += spostamentoy;
spostamentox = (spostamentox+(finex-iniziox)/accellerazione)/inerzia;
_x += spostamentox;
}
dovrei metterla su un altro frame ma e' impossibile sapere quanto tempo ci mette a posizionarsi con la prima action. Forse e' meglio sostituire la prima action con una semplice interpolazione alla fine della quale do al mc la seconda action.
Forse non e' molto chiaro il problema!?
JayMare
esatto, non kapisko kosa dici, ma non farci kaso mi kapita spesso![]()
togli la prima action, ti ho postato la seconda perkè la prima non era il massimo per quello ke volevi.
mi dici, kome si fa a far spostare un oggetto...e te lo diko....poi mi aggiungi ke questo oggetto deve ballare per tutto lo skermo a determinate kondizioni, allora ti do un secondo script ke fa + al caso tuo, kiaro ke il primo non è + valido, quindi devi sostituirlo kon il secondo, e poi il concetto e kiaro..ovunque sei, basta fare riferimento al percorso del tuo mc ballerino e dirgli ke la sua finex e la sua finey (quando okkorre), sono cambiati, e lui (avendo l'evento on enterFrame ), kabierà la sua posizione.
per esempio se il centro del tuo stage è a coordinate x 200 klikki il pulsante ke dice al tuo mc _root.mc.finex=200; e lui ci va, se dallo stesso pulsante vuoi farlo uscire quando è arrivato al centro...metti un if(_root.mc._x==200){
_root.mc.finex = 1000;
}
insomma se deve fare delle kose solo dopo averne fatte altre prima devi fargli kontrollare ke la kosa l'abbia fatta prima di fare la seconda o la terza.