Weergegeven resultaten: 1 t/m 9 van 9
  1. #1
    Member Wack0's schermafbeelding
    Lid sinds
    2/09/03
    Locatie
    Retie
    Berichten
    59
    iTrader
    0

    FLASH: Tween in class

    Hey

    Ik ben eens een poging aant doen OO te actionscripte ( ik ben hier dus nieuw in)

    het probleem is dat de classe die ik aan het schrijven ben een Tween zou moete uitvoeren die niet werkt.

    Dit is de classe
    Code:
    class CharsWindow extends MovieClip {
    	private var xmlUrl:String;
    	private var nwWidth:Number;
    	private var nwHeight:Number;
    	private var nwName:String;
    	private var newWin:MovieClip;
    	public function CharsWindow(bgColor:Number, wWidth:Number, wHeight:Number, wName:String, xmlDoc:String) {
    		xmlUrl = xmlDoc;
    		nwWidth = wWidth;
    		nwHeight = wHeight;
    		nwName = wName;
    		//
    		newWin = _root.createEmptyMovieClip(wName, 1000);
    		newWin._x = -wWidth-20;
    		newWin._y = 0;
    		newWin.beginFill(bgColor, 100);
    		newWin.moveTo(0, 0);
    		newWin.lineTo(wWidth, 0);
    		newWin.lineTo(wWidth, 0);
    		newWin.lineTo(wWidth, wHeight);
    		newWin.lineTo(0, wHeight);
    		newWin.endFill;
    	}
    	public function slideIn() {
    		var whereTo:Number = 200; Number(Stage.width/2 - nwWidth/2);
    		var tw = new mx.transitions.Tween(newWin,"_x",mx.transitions.easing.Elastic.easeOut,whereTo,3,true);
    	}
    }
    En hiermee wordt ze aangeroepen
    Code:
    var t = new CharsWindow(0xFFFFFF, 200, Stage.height, "blabla", "blabla");
    nxtBtn.onRelease = t.slideIn;
    Er wordt dus een kaderke getekent buiten het scherm ( dat werkt ) en dat zou dan naar het midden moeten moeten schuiven.

    Grtz en alvast bedankt

  2. #2
    Member Wack0's schermafbeelding
    Lid sinds
    2/09/03
    Locatie
    Retie
    Berichten
    59
    iTrader
    0
    De tween op zich heb ik al aan de praat gekregen er is nu enkel nog een probleem met het doorgeven van de vars binnen de klasse.

  3. #3
    Member Wack0's schermafbeelding
    Lid sinds
    2/09/03
    Locatie
    Retie
    Berichten
    59
    iTrader
    0
    Niemand

  4. #4
    Member
    Lid sinds
    25/07/02
    Locatie
    Brecht
    Berichten
    662
    iTrader
    2 (100%)
    hoe bedoel je "doorgeven van vars binnen de klasse" wat is het probleem daarmee?

  5. #5
    Member Wack0's schermafbeelding
    Lid sinds
    2/09/03
    Locatie
    Retie
    Berichten
    59
    iTrader
    0
    Wel als je binnen de klasse een var aanmaakt dan in de eerste functie een waarde aan die var toekent, en dan diezelfde var binnen een tweede functie wilt gebruiken. Dan geeft hij dat de variable undefined is.

  6. #6
    Crew Member LunchBox's schermafbeelding
    Lid sinds
    17/07/02
    Locatie
    Deurne
    Berichten
    4.180
    iTrader
    0
    stel anders een variabele in van het type Object binnen de klasse, passeer daar je variabelen van de eerste functie naartoe, en haal ze zo binnen de tweede functie weer op. ik geloof dat de "propere" oplossing gebruik van de delegate klasse is.

    op http://www.flashfocus.nl/forum/forumdisplay.php?f=7 gaan ze je zo kunnen verderhelpen.

  7. #7
    Member
    Lid sinds
    25/07/02
    Locatie
    Brecht
    Berichten
    662
    iTrader
    2 (100%)
    De manier waarop je het uitlegt is de volgende:

    - class variable aanmaken, var id:Number
    - functie 1 --> this.id = 10
    - functie 2 --> trace(this.id) // traced undefined.

    Als dat is wat er gebeurd, dan doe je iets verkeerd, want als object is id in alle functies dan beschikbaar (buiten de static functies, om volledig correct te zijn).

  8. #8
    Member
    Lid sinds
    25/07/02
    Locatie
    Brecht
    Berichten
    662
    iTrader
    2 (100%)
    Heb je code gedebugged, en het zijn 2 kleine dingen, die je moet aanpassen om het werkende te krijgen. Ook wil ik wel opmerken dat "variabele in klassen" absoluut niet het probleem zijn.

    Change 1: (je vergat hier de (), waardoor je de functie niet aanroept, maar ze gelijkstelt.)
    Code:
    nxtBtn.onRelease = t.slideIn;
    Code:
    nxtBtn.onRelease = t.slideIn();
    Change 2: (je bent hier een argument vergeten, namelijk, vanwaar de tween moet starten.)
    Code:
    var tw = new mx.transitions.Tween(newWin, "_x", mx.transitions.easing.Elastic.easeOut, whereTo, 3, true);
    Code:
    var tw = new mx.transitions.Tween(newWin, "_x", mx.transitions.easing.Elastic.easeOut, fromWhere, whereTo, 3, true);

  9. #9
    Member Wack0's schermafbeelding
    Lid sinds
    2/09/03
    Locatie
    Retie
    Berichten
    59
    iTrader
    0
    Bedankt, dat tweede van die tween had ik zelf ook al opgemerkt. En wat je zegt in je post daarboven is idd wat ik bedoelde. Ik zal eens kijken (morgen :P) of het nu werkt, alleszins bedankt.

Discussie informatie

Users Browsing this Thread

Op dit moment bekijken 1 gebruikers deze discussie. (0 leden en 1 gasten)

Regels voor berichten

  • Je mag geen nieuwe discussies starten
  • Je mag niet reageren op berichten
  • Je mag geen bijlagen versturen
  • Je mag niet je berichten bewerken
  •