PDA

Volledige versie bekijken : hello world te moeilijk


StevenW
%Europe/Berlin %831 %2008, 19:57
As2 lukte me nog redelijk. Maar bij as3 kom ik niet eens door de hello world tutorial heen. Ik snap niet wat ik verkeerd doe.



package {

public class HelloWorld {

public function HelloWorld() {

trace('Hello world.');

}
}
}


in de fla zet ik dan op frame 1:

import HelloWorld;

var test = new HelloWorld();


Maar dan krijg ik al de volgende errors:
1180: Call to a possibly undefined method addFrameScript.
5000: The class 'HelloWorld' must subclass 'flash.display.MovieClip' since it is linked to a library symbol of that type.

Heliosjiee
%Europe/Berlin %001 %2008, 00:02
The class 'HelloWorld' must subclass 'flash.display.MovieClip' since it is linked to a library symbol of that type

nou daar heb je de fout.. errors bevatten nuttige informatie ;)

Dauntless
%Europe/Berlin %005 %2008, 00:07
Je hebt deze classe dus ofwel aan een symbol gelinkt via library->linkage->export for AS-> class of je hebt hem ingevuld als document class.

Oplossing 1: Verwijder de link
Oplossing 2: Laat je classe de movieclip extenden
package {
import flash.display.MovieClip;
public class HelloWorld extends MovieClip{

public function HelloWorld() {

trace('Hello world.');

}
}
}

StevenW
%Europe/Berlin %063 %2008, 01:31
Ik zocht op het internet naar hello-world tutorials. En ik kwam deze tegen. Meer dan een class toevoegen en die oproepen via de fla wil ik niet. De rest kan ik uitvogelen. Hoort daat de import.flash.display.MovieClip wel bij? en is dat extends Movieclip nodig? Dit is namelijk heel anders bij as2.

edit:

Het klinkt misschien heel dom, maar ik heb het zo onder de knie als ik een werkend voorbeeld heb. Zou iemand voor mij een fla + as bestand willen uploaden waarbij de as class iets traced. Dan kom ik er wel uit. Ik krijg het niet voor elkaar. Ik kan ook nergens een helloWorld tutorial vinden die dat doet zonder map import structuur e.d.

jaspermuts
%Europe/Berlin %081 %2008, 01:57
De movieclip (of sprite) extenden is nodig wanneer je een klasse met een grafische weergave gebruikt. In je eerste post had je aan de tweede error (5000) te zien de klasse aan iets grafisch in je library gelinkt. Als je de klasse gelinkt wil laten blijven aan die movieclip, dan is het nodig om 'extends MovieClip' achter je klassenaam te zetten. Dat werd in as2 blijkbaar al automatisch voor je gedaan. In as3 dus niet.

Aan de eerste error(1180) te zien heb je HelloWorld als document class gebruikt, dus niet letterlijk als mc in je library. Een document class kun je namelijk zien als vervanger van scripts op de tijdlijn.

Je hebt dus de twee opties van Dauntless
1. Zorg dat HelloWorld geen document class is (maak dat tekstvak leeg). Dan zou je code moeten werken zoals in je post.

2. Als je HelloWorld wel als document class wil gebruiken, zorg dan dat deze MovieClip of Sprite extendt