Weergegeven resultaten: 1 t/m 16 van 16
  1. #1
    Member _rusty_'s schermafbeelding
    Lid sinds
    28/06/10
    Locatie
    Oedelem
    Berichten
    305
    iTrader
    16 (100%)

    flash puzzel die steeds fouten geeft

    Beste

    Ik moet voor een eindtaak voor school een flash projectje maken.

    ik heb gekozen voor een puzzel maar nu krijg is steeds #1010 fouten in mijn handler die ervoor zorgt die mijn puzzelstukken vastclippen op een voorbeeld (resultaat)

    iemand die mij kan/wil helpen?

    met vriendelijke groeten

    stijn
    Wait whut?

  2. #2
    Member
    Lid sinds
    16/04/08
    Locatie
    Hong Kong
    Berichten
    1.899
    iTrader
    6 (100%)
    Zonder wat code te geven zal niemand je echt kunnen helpen vrees.

    Post eens de code waar het fout gaat, alsook de foutmelding.

  3. #3
    Member _rusty_'s schermafbeelding
    Lid sinds
    28/06/10
    Locatie
    Oedelem
    Berichten
    305
    iTrader
    16 (100%)
    Code:
    package  {
    		
    		
    		import flash.display.MovieClip;
    		import flash.events.*;
    		import com.greensock.TweenLite;
    		import com.greensock.*;
    		
    		
    		
    		public class main extends MovieClip {
    			private var xpos: int;
    			private var ypos: int;
    			private var aantalJuist: int=0;
    			
    			
    			public function main() {
    				// constructor code
    				Landschap.MenuClip.addEventListener(MouseEvent.MOUSE_DOWN, navigatieHandler);
    				Landschap.LosseStukkenClip.addEventListener(MouseEvent.MOUSE_DOWN, sleepStukHandler);
    				Landschap.LosseStukkenClip.addEventListener(MouseEvent.MOUSE_UP, StopSleephandler);
    				
    				Landschap.ProficiatClip.visible = false;
    			}
    			
    			public function sleepStukHandler(evt:MouseEvent){
    				var mc:MovieClip = evt.target as MovieClip;
    				
    				xpos= evt.target.x;
    				ypos= evt.target.y;
    				
    				mc.parent.setChildIndex(mc, mc.parent.numChildren -1)
    				
    				evt.target.startDrag();
    				}
    			
    			public function StopSleephandler(evt:MouseEvent){
    				evt.target.stopDrag();
    				
    				var juist:Boolean = false;
    				
    				//controleren of puzzelstuk juist ligt
    				var sleepStuk:MovieClip = evt.target as MovieClip;
    				for (var i:int = 0; i < Landschap.resultaatClip.numChildren; i++){
    					var mc:MovieClip = Landschap.resultaatClip.getChildAt(i) as MovieClip;
    					if(Landschap.sleepStuk.name == mc.name && mc.hitarea.hitTestPoint(mouseX, mouseY)){
    						Landschap.sleepStuk.x = mc.x;
    						Landschap.sleepStuk.y = mc.y;
    						juist = true;
    						aantalJuist ++;
    						}
    					}
    				
    				//evt.target.x=xpos;
    				//evt.target.y=ypos;
    				if(juist == false)
    				TweenLite.to(evt.target, 1, {x:xpos, y:ypos});
    				
    				if(aantalJuist == 4)
    				Landschap.proficiatClip.visible = true;
    				}
    				
    				
    			public function navigatieHandler(evt:MouseEvent)
    			{
    				trace("menu item: " + evt.target.name);
    				var xposSite:int = 0;
    				
    				
    				switch(evt.target.name)
    				{
    					case "btnBos" : xposSite = +800;
    					
    					break;
    					case "btnDieren" : xposSite = -860;
    					
    					
    					break;
    					case "btnTerug" : xposSite = -40;
    					
    					break;
    					
    					
    					
    					}
    					if(xposSite != 0){
    						TweenLite.to(Landschap, 1, {x:xposSite});
    						
    						
    					}
    					
    					
    					
    					
    				}
    				
    			}
    			
    		}


    foutcode is:

    TypeError: Error #1010: Een term is ongedefinieerd en heeft geen eigenschappen.
    at main/StopSleephandler()
    Laatst gewijzigd door _rusty_; 28 mei 2012 om 13:11
    Wait whut?

  4. #4
    Member
    Lid sinds
    14/08/10
    Locatie
    Diest
    Berichten
    2.408
    iTrader
    1 (100%)
    Gebruik eens code tags.
    Mobielinformatie.com: Ben jij een mobiele Viking? Dan geniet je nu van gratis televisie overal!

  5. #5
    Crew Member Zero Grav's schermafbeelding
    Lid sinds
    6/06/04
    Locatie
    Bilzen
    Berichten
    8.826
    iTrader
    18 (100%)
    En gebruik eens een Engelstalige debugger

    Soit, error #101 is een null reference, dus ge verwijst ergens naar een object dat (nog) niet geïnitialiseerd is of simpelweg niet bestaat. Even zoeken naar welk object dat is dus.

    Ik zou trouwens ook geen evt.target gebruiken in uw mouse_up handler, maar bij het starten van uw slepen het huidige object opslaan in een instance variable en die dan hergebruiken bij het stoppen.

  6. #6
    Member _rusty_'s schermafbeelding
    Lid sinds
    28/06/10
    Locatie
    Oedelem
    Berichten
    305
    iTrader
    16 (100%)
    Hoe bedoel je precies?
    hoe zou ik dit kunnen oplossen?

    Ik heb nog een ander probleem waar ik straks nog even op zal terug komen
    Wait whut?

  7. #7
    Member
    Lid sinds
    19/02/06
    Locatie
    -
    Berichten
    4.057
    iTrader
    1 (100%)
    Staat er nergens op welke regel die error optreedt?

    En verder zou ik nog willen opmerken dat namen van classes over het algemeen beginnen met een hoofdletter en variabelen met een kleine letter.

  8. #8
    Member _rusty_'s schermafbeelding
    Lid sinds
    28/06/10
    Locatie
    Oedelem
    Berichten
    305
    iTrader
    16 (100%)
    Als ik ga debuggen dan geeft flash meestal de foutmelding in dit stukje code

    voornamelijk in de if lus.

    Code:
    public function StopSleephandler(evt:MouseEvent)
    		{
    			evt.target.stopDrag();
    
    			var juist:Boolean = false;
    
    			//controleren of puzzelstuk juist ligt
    			var sleepStuk:MovieClip = evt.target as MovieClip;
    			for (var i:int = 0; i < Landschap.resultaatClip.numChildren; i++)
    			{
    				var mc:MovieClip = Landschap.resultaatClip.getChildAt(i) as MovieClip;
    				if (Landschap.sleepStuk.name == mc.name && mc.hitarea.hitTestPoint(mouseX,mouseY))
    				{
    					Landschap.sleepStuk.x = mc.x;
    					Landschap.sleepStuk.y = mc.y;
    					juist = true;
    					aantalJuist++;
    				}
    			}
    			
    			
    
    			//evt.target.x=xpos;
    			//evt.target.y=ypos;
    			if (juist == false)
    			{
    				TweenLite.to(evt.target, 1, {x:xPos, y:yPos});
    			}
    
    			if (aantalJuist == 4)
    			{
    				Landschap.proficiatClip.visible = true;
    			}
    			
    		}
    Wait whut?

  9. #9
    Crew Member Zero Grav's schermafbeelding
    Lid sinds
    6/06/04
    Locatie
    Bilzen
    Berichten
    8.826
    iTrader
    18 (100%)
    Ik bedoel dat ge uw objecten die ge aanspreekt in die functie eens moet tracen om te kijken of ze niet null zijn. Want daar crasht em op.

    Pak bijvoorbeeld dat "evt.target" geen waarde heeft (wat afaik niet zou kunnen, maar soit, 't is maar een voorbeeld), dan heeft sleepStuk ook geen waarde en crasht em daarop. Hetzelfde met Landschap (zou een kleine letter moeten zijn eigenlijk) of mc of Landschap.proficiatClip of Landschap.proficiatClip. Dat zijn allemaal objecten die ge aanspreekt, die eventueel null kunnen zijn.

    Dus trace(evt.target); bijvoorbeeld al eens om te kijken of het niet null is (en of het wel het juiste object is), en ga zo verder de lijst af. Of zet gewoon een breakpoint in uw code en dan kunt ge het sneller zien.

  10. #10
    Approved 9-lifer passero's schermafbeelding
    Lid sinds
    28/11/03
    Locatie
    Surbiton (London)
    Berichten
    6.631
    iTrader
    5 (100%)
    Weblogs
    3
    Heeft flash geen debugger waarbij ge kunt volgen en zo kunt zien welk object NULL is?

  11. #11
    Member _rusty_'s schermafbeelding
    Lid sinds
    28/06/10
    Locatie
    Oedelem
    Berichten
    305
    iTrader
    16 (100%)
    De fout zat bij de hitarea, deze was dus null en daarop crashte hij dus.
    Ik heb het gewoon verwijderd en nu werkt de puzzel toch al zoals het moet

    thx Zero Grav

    Mijn ander probleem post ik hier ook, als het me niet eerst lukt het zelf op te lossen

    mvg
    Wait whut?

  12. #12
    Crew Member Zero Grav's schermafbeelding
    Lid sinds
    6/06/04
    Locatie
    Bilzen
    Berichten
    8.826
    iTrader
    18 (100%)
    Citaat Oorspronkelijk geplaatst door passero Bekijk bericht
    Heeft flash geen debugger waarbij ge kunt volgen en zo kunt zien welk object NULL is?
    Jawel, maar als ge niet weet wat een null reference is dan weet ge doorgaans ook niet hoe ge de debugger moet gebruiken. Sowieso is die van Flash ook echt brol, Flash Builder is veel handiger.

  13. #13
    Member _rusty_'s schermafbeelding
    Lid sinds
    28/06/10
    Locatie
    Oedelem
    Berichten
    305
    iTrader
    16 (100%)
    Ik heb hier nog een klein foutje tegengekomen, maar weet niet helemaal hoe ik het zou moeten oplossen.

    ik heb dus 6 movieclips genaamd vb.(babyBottle,..., en babyBottleTarget)
    nu wil ik dat ik mijn movieclip babyBottle kan verslepen (dit werkt) maar bij het loslaten wil ik dat er gecontroleerd wordt ofdat de clip babyBottleTarget raakt.
    dit heb ik als volgt gedaan:
    Code:
    private function stopDragObject(evt:MouseEvent)
    		{
    
    
    			if (evt.target.hitTestObject(getChildByName(evt.target.name + "Target")))
    			{
    
    				evt.target.x = getChildByName(evt.target.name + "Target").x;
    				evt.target.y = getChildByName(evt.target.name + "Target").y;
    
    
    				//hier code plaatsen voor audio af te spelen
    			}
    			else
    			{
    				evt.target.x = xPosDrag;
    				evt.target.y = yPosDrag;
    			}
    evt.target.stopDrag();
    			
    		}
    dan krijg ik deze error
    TypeError: Error #2007: Parameter hitTestObject mag niet null zijn.
    at flash.display:isplayObject/_hitTest()
    at flash.display:isplayObject/hitTestObject()
    at main/stopDragObject()
    Wait whut?

  14. #14
    Crew Member Zero Grav's schermafbeelding
    Lid sinds
    6/06/04
    Locatie
    Bilzen
    Berichten
    8.826
    iTrader
    18 (100%)
    Ge moet natuurlijk ook wel uw foutmeldingen lezen. Uw parameter in hitTestObject is null. Dus er is geen child dat de naam evt.target.name + "Target" heeft.

    Uw evt.target.name eens tracen en kijken of het wel is wat ge ervan verwacht.

  15. #15
    Member _rusty_'s schermafbeelding
    Lid sinds
    28/06/10
    Locatie
    Oedelem
    Berichten
    305
    iTrader
    16 (100%)
    Ja, ik heb het gevonden.

    de fout zat idd bij evt.target.name kheb ipv evt.target.name gewoon direct de namen erin gezet en de functie 3X gekopierd

    het werkt
    Wait whut?

  16. #16
    Member
    Lid sinds
    16/04/08
    Locatie
    Hong Kong
    Berichten
    1.899
    iTrader
    6 (100%)
    Het eerste wat je in dit geval moet doen is je Flash in het engels zetten zodat je ook engelse errors krijgt.
    Waarom? Omdat je engelse errors veel makkelijker kan opzoeken op google.

    Daarna begin je gewoon met ofwel breakpoints te zetten, ofwel de trace functie te gebruiken.
    trace(evt.traget), geeft dat null, dan weet je dat er ergens iets fout loopt waardoor er geen object binnenkomt.

    Error 1010 zou je na een paar dagen toch al van buiten moeten kennen :P

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
  •