Temat: Statement must appear within on handler
Kod który podałaś wcześniej (Math.Digits) mógł działać pod AS1, kod który ostatnio napisałas (Math.Test) również może działac tylko pod AS1 ale pewnie testowałas go pod AS2 i stad te błedy.
Od wersji AS2 wszystko opiera sie na klasach dlatego też aby "dołożyć" jakas własciwosc czy metode do danej klasy (np Math która jest klasa wbudowana w flash player) trzeba napisać sobie nowa klase dziedziczącą po klasie do której chcemy "dołożyć" metode czy też właściowść. Słowo dołozyć pisze w cudzymsłowiu z tego wzgledu ze tak naprawde nie dokładamy tych nowych metod i właściwość do super klasy a jedynie dostajemy od niej dostęp do jej wbudowanych metod i własciwosci... ;)
Poniewaz mysle ze moj opis moze byc nieco zagmatwany to popre to mini przykładem.
Założmy ze chcesz miec metode przeliczajaca stopnie do radianow w klasie ktora rowniez mozesz uzywac jako klase Math czyli masz dostep do jej wszystki metod i własciwości (floor, ceil, PI itd.)
Wiec piszemy taka mini klase:
class Math2 extends Math {
public static function degreesToRadians (deg:Number):Number {
return (deg / 180 * PI);
}
}
I testujemy:
trace(Math2.degreesToRadians(20)); //0.3490...
trace(Math2.floor(2.121)); //2 <- jak widzisz tej metody nie definiowalismy w klasie Math2 ale przez to ze dziedziczy po Math mamy do niej dostep.
Łukasz Adamczyk edytował(a) ten post dnia 22.02.08 o godzinie 12:15