Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[AS] Stopzetten actionscript-functie

Pagina: 1
Acties:

  • F e r o x
  • Registratie: Mei 2006
  • Laatst online: 18-11-2024
Ik heb een movieclip (genaamd 'main') die ik beweeg door wat actionscript:
code:
1
2
3
4
5
6
7
8
9
knop.onRelease = function(){
        main.endX = (Stage.width-main.mc._width)/2;
        
        main.onEnterFrame = moveX;
}
function moveX(){
        this._x += (this.endX-this._x)/3;
        if(calcVer(this._x,this.endX) == 0) delete this.onEnterFrame;
}

Ik heb nog wat extra code zodat de movieclip gecentreerd blijft staan, wanneer de swf ge-resized wordt:
code:
1
2
3
4
function centerMain(){
        main._x = (Stage.width-main.mc._width)/2;
        main._y = (Stage.height-main.mc._height)/2;
}

Het probleem is nu dat doordat de coördinaten aangepast worden bij het resizen, de movieclip weer opnieuw de functie uitvoert om ze te doen bewegen. Nu dacht ik dat dit niet meer mogelijk was doordat er 'delete this.onEnterFrame' stond, maar dit is dus niet het geval. Iemand die hiervoor de oplossing weet?

  • edwinistrator
  • Registratie: December 2000
  • Laatst online: 23-03-2022
code:
1
delete this.onEnterFrame
moet eerder dit zijn, denk ik:
code:
1
delete main.onEnterFrame

want waar is 'this' in die functie? In jouw functie wordt onEnterFrame niet weggegooid, even zo getest dan wordt ie wel weggegooid:
code:
1
2
3
4
5
6
7
8
9
10
function moveX() {
    if (i<10) {
        i++;
        trace('hihi');
    }
    if (i>10) {
        delete main.onEnterFrame;
        i = 0;
    }
}

[ Voor 44% gewijzigd door edwinistrator op 17-08-2007 11:25 ]


  • F e r o x
  • Registratie: Mei 2006
  • Laatst online: 18-11-2024
Hij wordt door middel van 'main.onEnterFrame = moveX;' aangeroepen, dus wil toch zeggen dat 'this' altijd gelijk gesteld wordt aan 'main'.