Ich habe eine Kreisform, und was ich erreichen möchte, ist, dass es maskiert wird und dann Frame eingeben es zould sollte wie eine Uhr entlarvt werden, so dass Sie von 0 bis 1 sehen, dann von 0 bis 2, 0 bis 3, usw., ich weiß, dass es mit Radianten etc. getan werden muss, aber Mathe ist nicht wirklich meine Tasse Tee. Irgendwelche Ideen?ein Oval wie eine Uhr demaskieren
1
A
Antwort
1
Schritt 1: Erstellen Sie eine Maske Sprite für Ihre Form
Schritt 2: Berechnen Sie den Winkel, den Sie brauchen:
var endAngle:Number = 360/12 * clockTime;
wo Uhrzeit Ihre Stunden. Verwenden Sie für Minuten 360/60.
Schritt 3: Aktualisieren Sie die Maske auf ENTER_FRAME
Sie haben ein Kreissegment mit curveTo zu ziehen. Verwenden Sie maskSprite.graphics.clear()
und maskSprite.graphics.beginFill(0,1)
, dann rufen:
function drawClockSlice (sprite : Sprite, centerX : Number, centerY : Number, endAngle : Number, radius : Number) : void
{
var g : Graphics = sprite.graphics;
var controlPoint : Point;
var anchorPoint : Point;
var startRadians:Number = Math.PI/180 * -90;
var endRadians : Number = Math.PI/180 * (endAngle-90);
var difference : Number = Math.abs(endRadians - startRadians);
var divisions : Number = Math.floor(difference/(Math.PI/4)) + 1;
var span : Number = difference/(2 * divisions);
var controlRadius : Number = radius/Math.cos(span);
g.moveTo(centerX, centerY);
g.lineTo(centerX + (Math.cos(startRadians) * radius), centerY + Math.sin(startRadians) * radius);
for (var i : Number = 0; i < divisions; ++i)
{
endRadians = startRadians + span;
startRadians = endRadians + span;
controlPoint = new Point(centerX + Math.cos(endRadians) * controlRadius, centerY + Math.sin(endRadians) * controlRadius);
anchorPoint = new Point(centerX + Math.cos(startRadians) * radius, centerY + Math.sin(startRadians) * radius);
g.curveTo(controlPoint.x, controlPoint.y, anchorPoint.x, anchorPoint.y);
}
g.lineTo(centerX, centerY);
}
(Ich habe genommen und bearbeitet den obigen Code aus einem verwandten example by meddlingwithfir)
Sie nicht Ihre endFill()
vergessen!
Verwandte Themen
- 1. Wie zeichne ein glattes Oval in Leinwand
- 2. Wie mache ich ein Oval in CSS?
- 3. Wie zeichne ich ein schräges Oval mit UIBezierPath
- 4. Zeichnung Rechtecke und Oval
- 5. Wie benutze ich ein Schmuckstück, um eine Aufgabe um 2 Uhr und 14 Uhr auszuführen?
- 6. Schleife innerhalb Oval in Java
- 7. Android Kreis Hintergrund wird oval
- 8. Oval Pfad Animation mit Bild
- 9. $ Uhr ist nicht eine Funktion
- 10. Oval ProgressBar ENTSPANNUNG ENTSPRECHEND Text
- 11. Uhr gesamtes Objekt (tiefere Uhr) mit AngularJS
- 12. Zeichnung mehrere gefüllte Bögen in Oval
- 13. Oval Kollisionsverfahren nie aufgerufen - Java Swing
- 14. Wie bekomme ich ein Symbol neben der Uhr?
- 15. Hinzufügen von "0" wenn Uhr eine Ziffer
- 16. Uhr OS 2 Ausgabe ein Bild
- 17. Liveload eine lokale URL mit Grunt Uhr
- 18. Wie Standard-Knotenform auf Box statt Oval festlegen?
- 19. Winkeleinheit Test $ Intervall für eine "Uhr" Direktive
- 20. Countdown-Uhr
- 21. Wie kann ich eine VHDL-24-Stunden-Uhr testen?
- 22. wie man eine JavaScript-Uhr nach Datenbankwerten macht
- 23. Wie berechnet man ein Datum für eine 00:00:00 Uhr von heute?
- 24. Wie bekomme ich die aktuelle Uhrzeit und stelle sie auf eine Uhr ein?
- 25. Wie wird die Genymotion Uhr eingestellt?
- 26. $ uhr Aktualisierung nicht subview
- 27. Countdown-Uhr in Android
- 28. Angularjs Anweisung Uhr entfernen?
- 29. Oval-Validierung zu gültigen Rest API AbfrageParam und PfadParam
- 30. vergleichen Client-Gerät Uhr mit Server-Uhr genau bis Millisekunden