PDA

Volledige versie bekijken : flash FDT - FDT vindt dat ik iets niet goed script


jackohoogeveen
%Europe/Berlin %573 %2008, 14:45
hey flash focus leden,

ik ben dus begonnen met OOP en FDT. alleen de FDT editor geeft me een paar vervelende fouten. als ik hem vervolgens run werkt alles perfect. ik heb geen idee waar het programma dus last van heeft. dit is mijn script


package src
{
import flash.display.MovieClip;
import mcKnop;

public class test extends MovieClip
{
public var _myVar:String = "123456789";
public var _temp:String;
private var ding:mcKnop;

public function test():void
{
myFunction(_myVar);
ding = new mcKnop();
addChild(ding);
}

public function myFunction(test:String):void
{
test = test.slice(3,test.length-1);
trace(test);
}
}
}


de fouten die FDT aan geeft zijn:



package src
import mcKnop;
private var ding:mcKnop;
ding = new mcKnop();


op een of andere manier snapt FDT mijn package locatie niet.
daar naast snapt hij ook niet mijn geinporteerde object.

ik weet dat FDT heel erg pressies is en daarom wil ik me graag aan al zijn regels houden zo dat ik erg net kan scripten.

heeft iemand een idee hoe ik er voor kan zorgen dat FDT zich er niet meer aan ergert?

Dauntless
%Europe/Berlin %577 %2008, 14:51
Wat zijn de exacte foutmeldingen? (Dus niet enkel de regels). Wellicht zegt hij eerder dat een classe met een hoofdletter zou moeten beginnen?

Je kan die dingen afzetten bij edit->preferences->FDT->warnings (oid). Maar ik ben nog altijd curieus waarom hij de fouten geeft.

jackohoogeveen
%Europe/Berlin %581 %2008, 14:57
de fouten zijn:


the package name is "src" but should be "" at line 1 column 9
could not resolve import name "mcKnop"at line 4 column 9
could not resolve type reference to "mcKnop" at line 10 column 20
could not resolve function "mcKnop"at line 15 column 15

Dauntless
%Europe/Berlin %588 %2008, 15:06
De 'src' map in een project in FDT (of eender welk ander Eclipse project) is géén package map. Het is de basismap waarin al je source bestanden komen te staan. Je moet dus eerst nog een package toevoegen (rechtermuisknop op 'src' -> new -> package) en dan met bv de naam 'src' (al is dat een vreemde package naam).

Waar staat de mcKnop classe ?

Ps: Houd ook al je variabelen private.

jackohoogeveen
%Europe/Berlin %599 %2008, 15:23
ik heb de new package toegevoegt aan de map src, met de naam src.
dit verandert de situatie zo ver ik zie niet. hij geeft nog steeds de zelfde fouten.
het enigste verschil dat ik zie is een pakje dat onder de src map staat.

de mcKnop classe staat in mijn fla library.

ik het de volgende dingen onder linkage ingevuld:

class: mcKnop
base Class: flash.display.MovieClip
export for actionscript = true
export first name = true

Dauntless
%Europe/Berlin %616 %2008, 15:47
Je class moet dus IN dat mapje zitten dat je nu hebt aangemaakt. (Of je verandert naar package {} en verwijdert het mapje)

Om de movieclips van een .fla te kunnen gebruiken in FDT, heb je een SWC nodig. Volg deze stappen:
http://fdt.powerflasher.com/forum/viewtopic.php?p=7030&sid=a1d091e364a678b55e5060eacb06a980#p7030

jackohoogeveen
%Europe/Berlin %665 %2008, 16:58
toppie :D

heb de instructies gevolgd en alle fouten zijn weg.
inmiddels ben ik wat verder gaan programmeren. en liep ik tegen het volgende aan.


public function onClik(event:MouseEvent):void
{
event.target.y += 10;
event.target.rotation +=10;
}


net zoals voorheen werkt de functie perfect. maar krijg ik nu waar schuwingen

Untyped member access. Object is dynamic and "y" is nog declared, at line 27 colum 17
Untyped member access. Object is dynamic and "rotation" is nog declared, at line 28 colum 17

heb je hier nog tips voor Dauntless. of is het misschien beter dat ik de gele strepen uit zet?

mknol
%Europe/Berlin %684 %2008, 17:25
onClik moet waarschijnlijk onClick zijn?

Overigens lijkt de beschrijving van de fout duidelijk, je hebt de variable nog niet gedefineerd in het object waar je de listener aan gehangen hebt.

Dauntless
%Europe/Berlin %694 %2008, 17:40
Jij weet dat er op een DisplayObject geklikt is, maar de compiler (/FDT) weet dat niet. Hij denkt dus dat het om een object gaat (want dat is het type van 'event.target') en die heeft geen y. Het is sowieso ook veiliger om altijd eerst te casten naar het juiste type.
Via een apparte variabele:
public function onClik(event:MouseEvent):void
{
var target:DisplayObject = event.target as DisplayObject;
target.y += 10;
target.rotation +=10;
}

Of direct:
public function onClik(event:MouseEvent):void
{
(event.target as DisplayObject).y += 10;
(event.target as DisplayObject).rotation +=10;
}
Ps: Waarschijnlijk wil je 'event.currentTarget' ipv 'event.target'.

jackohoogeveen
%Europe/Berlin %367 %2008, 09:49
teneerste moet ik zeggen dat ik het super vindt dat je me helpt Dauntless. de DisplayObject werkte in het begin niet maar dat was omdat ik displayObject niet geïmporteerd had. dat heb ik gedaan en alles werkt nu super!! het heel erg bedankt voor je hulp! ik snap nu weer veel meer van FDT en AS3!! :) :D :) :D :) :D

keep up the good work :D :D :D :D