AS2 und EndAngle Probleme

IceWater

Grünschnabel
Hi,

ich habe Flash CS3 und möchte in einem Preloader eine Oval darstellen der sich langsam, wie eine Uhr von 0 nach 360° füllt.

Das OvalObject scheint erst ab Version CS3 die Methode OvalObject.endAngle zu kennen. Mein Preloader und mein Programm ist aber mit AS2 programmiert.

Ich bekomme es nicht hin meinen Preloader zu bauen. Liegt das daran dass OvalObject.endAngle nur mit AS3 funktioniert oder kann ich das auch mit AS2 machen, ich stelle mich aber zu doof an? Wie geht das mit AS2 ...

Grüße
IceWater
 
Hi und willkommen im Forum,

das OvalObject ist mir aus AS2.0 (Flash 8) völlig umbekannt.

Du kannst allerdings auch mit den Zeichnungsmethoden problemlos eine ovale Form zeichnen:
Code:
var radx = 200;

var rady = 150;

var ct:MovieClip = this.createEmptyMovieClip("ct", 1);

ct._x = Stage.width / 2;

ct._y = Stage.height / 2;

function showPercent(p) {
	var da = p * Math.PI * 2 / 100;
	ct.clear();
	ct.beginFill(0xFF0000, 100);
	ct.moveTo(0, 0);
	ct.moveTo(Math.sin(0) * radx, -Math.cos(0) * rady);
	for (var i=0; i<da; i+=0.1) {
		ct.lineTo(Math.sin(i) * radx, -Math.cos(i) * rady);
	}
	ct.lineTo(Math.sin(da) * radx, -Math.cos(da) * rady);
	ct.lineTo(0, 0);
	ct.endFill();
}

var loaded = 0;

this.onEnterFrame = function() {
	loaded += Math.random() * 3;
	showPercent(loaded);
	if (loaded >= 100) {
		delete this.onEnterFrame;
		showPercent(100);
	}
}

Gruß
.
 
Vielen vielen Dank, das funktioniert super!

Hier der komplette Kreis-Preloader :)
Code:
stop();

var radx = 100;
var rady = 100;

var ct:MovieClip = this.createEmptyMovieClip("ct", 1);

ct._x = Stage.width / 2;
ct._y = Stage.height / 2;

function showPercent(p) {
	var da = p * Math.PI * 2 / 100;
	ct.clear();
	ct.beginFill(0xB00032, 100);
	ct.moveTo(0, 0);
	ct.moveTo(Math.sin(0) * radx, -Math.cos(0) * rady);
	for (var i=0; i<da; i+=0.1) {
		ct.lineTo(Math.sin(i) * radx, -Math.cos(i) * rady);
	}
	ct.lineTo(Math.sin(da) * radx, -Math.cos(da) * rady);
	ct.lineTo(0, 0);
	ct.endFill();
}

var loaded = 0;

this.onEnterFrame =    function(){
    geladen    =    this.getBytesLoaded();
    gesamt     =    this.getBytesTotal();
    prozent    =    geladen / gesamt * 100;
    showPercent(Math.round(prozent));

    if(geladen >= gesamt) {
        this.gotoAndPlay(2);
        delete this.onEnterFrame;
    }
	
}
 
Zurück