Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    [Mx] problema nell'uscire delete.onEnterFrame; movimento non lineare

    Poniamo di avre una cosa del genere:
    Codice PHP:
    function rot() {
        
    friction 0.15;
        
    distanceR = (targetR-this._x)*friction;
        
    this._x += distanceR;
    }

    function 
    updateEnshu(r) {
        
    targetR r;
        
    # (...) Altre cose
    }

    yajirushi.onEnterFrame rot;

    on (release) {
        
    _root.updateEnshu(172);

    Una funzione definita per un movimento non lineare, (in questo caso una movimento sull'asse x), un'altra funzione che fa l'update, e un bottone che richiama la funzione passandogli il parametro a cui si deve arrivare.

    Indipendentemente dalla funzione (potrei averne anche solo una, ma non è questo il problema), i parametri passati dai bottoni possono avere valori positivi e negativi...
    Quindi a volte la la _x attuale è positiva e si muove verso valori negativi e a volte viceversa.
    Bene, spesso, facendo un trace di questi valori assunti dalla _x ho notato che questa non sempre raggiunge il target prefissato e di conseguenza ho difficoltà a inserire nella funzione un delete.this.onEnterFrame;.
    Anche perchè come dicevo non posso scrivere un if del tipo if (current._x >= target._x) perchè avendo target positivi e negativi a seconda dei casi dovrei usare >= oppure <=
    Inoltre non posso nemmeno usare == perchè non sempre il valore corrente arriva esattamente al target assegnato.

    che fare?
    わさび

  2. #2
    i riferimenti sono giusti ?
    fai
    trace( this ) fuori dall' if per il delete this.onEnterFrame .. vedi se e' giusto il percorso perche' a prima vista stai sbagliando scopes
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da andr3a
    i riferimenti sono giusti ?
    fai
    trace( this ) fuori dall' if per il delete this.onEnterFrame .. vedi se e' giusto il percorso perche' a prima vista stai sbagliando scopes
    ehm scusa, si i percorsi sono giusti,
    quella che vedi su di funzione l'ho riscritta a mano nel thread perchè quella mia era piena di "altra roba"
    Comunque il concetto è quello:
    spesso current._x si avvicina all'infinito a target._x senza completare il suo percorso e ho difficolta a mettere il delete anche perchè i valori del target possono essere positivi o negativi
    わさび

  4. #4
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    se faccio un trace di distarnceR
    cliccando prima su un bottone con target positivo e poi su uno con target negativo ho questi valori:

    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    4.8
    4.08
    3.468
    2.9478
    2.50563
    2.1297855
    1.810317675
    1.53877002375
    1.3079545201875
    1.11176134215937
    0.944997140835468
    0.803247569710148
    0.682760434253626
    0.580346369115582
    0.493294413748245
    0.419300251686008
    0.356405213933107
    0.302944431843141
    0.257502767066669
    0.218877352006669
    0.186045749205669
    0.158138886824819
    0.134418053801096
    0.114255345730932
    0.0971170438712917
    0.0825494872905978
    0.0701670641970079
    0.0596420045674567
    0.050695703882338
    0.0430913482999875
    0.0366276460549892
    0.031133499146741
    0.0264634742747299
    0.0224939531335203
    0.0191198601634923
    0.0162518811389685
    0.0138140989681229
    0.0117419841229045
    0.00998068650446911
    0.00848358352879863
    0.00721104599947857
    0.00612938909955663
    0.00520998073462327
    0.0044284836244298
    0.00376421108076528
    0.0031995794186507
    0.00271964250585288
    0.00231169612997508
    0.00196494171047874
    0.00167020045390682
    0.00141967038582056
    0.00120671982794729
    0.00102571185375506
    0.000871855075691563
    0.000741076814338015
    0.0006299152921871
    0.000535427998359062
    0.000455113798605389
    0.00038684672881466
    0.000328819719492301
    0.00027949676156851
    0.00023757224733334
    0.000201936410233472
    0.000171645948698185
    0.000145899056393617
    0.000124014197934841
    -10.9498945879318
    -9.30741039974199
    -7.91129883978069
    -6.72460401381359
    -5.71591341174155
    -4.85852639998032
    -4.12974743998327
    -3.51028532398578
    -2.98374252538791
    -2.53618114657973
    -2.15575397459277
    -1.83239087840385
    -1.55753224664328
    -1.32390240964678
    -1.12531704819977
    -0.956519490969801
    -0.813041567324331
    -0.691085332225681
    -0.587422532391828
    -0.499309152533054
    -0.424412779653096
    -0.360750862705132
    -0.306638233299362
    -0.260642498304458
    -0.22154612355879
    -0.188314205024972
    -0.160067074271226
    -0.136057013130542
    -0.115648461160961
    -0.0983011919868172
    -0.0835560131887942
    -0.0710226112104746
    -0.0603692195289035
    -0.0513138365995683
    -0.043616761109633
    -0.0370742469431882
    -0.0315131099017094
    -0.026786143416453
    -0.0227682219039853
    -0.0193529886183871
    -0.0164500403256291
    -0.0139825342767846
    -0.0118851541352669
    -0.0101023810149773
    -0.00858702386273116
    -0.00729897028332154
    -0.00620412474082315
    -0.00527350602969925
    -0.00448248012524388
    -0.00381010810645677
    -0.00323859189048825
    -0.00275280310691528
    -0.00233988264087799
    -0.00198890024474672
    -0.00169056520803466
    -0.00143698042682914
    -0.00122143336280445
    -0.00103821835838431
    -0.000882485604627092
    -0.000750112763932975
    -0.000637595849343242
    -0.000541956471942129
    -0.000460663001150863
    -0.000391563550978447
    -0.000332829018331893
    -0.000282904665581896
    -0.000240468965744611
    -0.000204398620883239
    -0.00017373882775118
    -0.00014767800358797
    -0.000125526303050094
    -0.000106697357592367
    -0.0000906927539531921
    -0.0000770888408606396
    -0.0000655255147314904
    nel primo caso la distanza si muove ad es. da 4 e tende allo zero senza però arrivarci mai,
    e nel secondo caso da un numero negativo di -10 allo 0, anche in questo caso non ci arriva mai...

    Dimenticavo:
    se uso
    distanceR = Math.ceil((targetR-this._rotation)*friction);
    il movimento sarà molto meno gradevole anche se distanceR finalmente in entrambi i casi arriva allo 0
    わさび

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.