Musikzellen 3
/**
* Copyright tipein123 ( http://wonderfl.net/user/tipein123 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/pIkh
*/
// forked from tipein123's Musikzellen 2
// forked from tipein123's Musikzellen
package {
import flash.geom.Point;
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.filters.*;
import flash.text.*;
[SWF(width="800",height="800",backgroundColor="0x000000",frameRate="100")]
public class FlashTest extends Sprite {
public function FlashTest() {
// write as3 code here..
var Breite:int = stage.stageWidth;
var Höhe:int = stage.stageHeight;
var Tony:Tonzelle;
var Tonyliste:Array = new Array;
var TonyMenge:int = 7;
var Takty:Taktzelle;
var Taktyliste:Array = new Array;
var TaktyMenge:int = 5;
var ticker:Timer = new Timer(33);
ticker.addEventListener(TimerEvent.TIMER, Verbinden);
ticker.start();
var TextStyle:TextFormat = new TextFormat();
TextStyle.font = "Arial";
TextStyle.color = 0xBC8F8F;
TextStyle.align = "left";
TextStyle.size = 25;
var tf:TextField = new TextField();
tf.width = stage.stageWidth;
tf.height = stage.stageHeight;
tf.text = "Hallo\n";
tf.wordWrap = true;
tf.multiline = true;
tf.textColor = 0x00ff00; //0x0000ff wenn nicht schwarz auf schwarz gewünscht wird
tf.setTextFormat (TextStyle);
addChild(tf);
for (var i:uint = 0; i<TonyMenge; i++)
{
Tony = new Tonzelle (Breite*Math.random(),Höhe*Math.random(),"egal");
addChild (Tony);
Tonyliste.push(Tony);
Tony.zufallsFarbe();
//tf.appendText(Tony.Farbe+"\n");
}
for (var ii:uint = 0; ii<TaktyMenge; ii++)
{
Takty = new Taktzelle (Breite*Math.random(),Höhe*Math.random(),100*Math.random()+100 ,"egal");
addChild (Takty);
Taktyliste.push(Takty);
Takty.zufallsFarbe();
}
//Jetzt noch einen Eventlistener einbinden
//Dann gucken, dass nur beim Draggen neu gez. wird
function Verbinden ():void
{
graphics.clear();
graphics.lineStyle(0,Math.random()*0xffffff,1);
var pt1:Point = new Point();
var pt2:Point = new Point();
var Abstand:Number;
for (var a:uint = 0; a<Tonyliste.length; a++)
{
Tonyliste[a].Abstandsmodus = 0;
for (var i:uint = 0; i<Taktyliste.length; i++)
{
graphics.moveTo(Tonyliste[a].x,Tonyliste[a].y);
pt1.x = Tonyliste[a].x;
pt1.y = Tonyliste[a].y;
graphics.lineTo (Taktyliste[i].x,Taktyliste[i].y);
pt2.x = Taktyliste[i].x;
pt2.y = Taktyliste[i].y;
Abstand = Point.distance(pt1,pt2);
if (Abstand < Taktyliste[i].Taktmesser) {Tonyliste[a].Abstandsmodus += 1;}
graphics.clear();
}
}
}
}
}
}
import flash.display.Sprite;
import flash.events.*;
class Tonzelle extends Sprite
{
public var xPos:uint;
public var yPos:uint;
public var Farbe:String;
public var Kerndurchmesser:int;
public var Durchmesser1:int;
public var Durchmesser2:int;
public var Wachstumsrichtung:int;
public var Schiebemodus:int = 0; //0 = still, 1 = drag aktiv
public var Abstandsmodus:int = 0; // !=0 => Abstand ist exakt
public var Farbliste:Array = new Array(
"rot", 0xff0000, "grün", 0x000ff00, "blau", 0x0000ff , "weiss", 0xffffff
,"grau", 0x888888, "hellgrau", 0xbbbbbb , "dunkelgrau", 0x444444
, "lila", 0x800080 , "rosa", 0xFF00FF, "gelb", 0xFFFF00 , "türkis", 0x00FFFF
, "Aliceblau", 0xF0F8FF, "Antik-Weiß", 0xFAEBD7, "Aquamarinblau", 0x7FFFD4, "Blauviolett", 0x8A2BE2, "Braun", 0xA52A2A, "grobes Braun", 0xDEB887
, "Kadettblau", 0x5F9EA0, "Hellgrün", 0x7FFF00, "Schokolade", 0xD2691E, "Kornblumenblau", 0x6495ED, "Koralle", 0xFF9966, "Mais", 0xFFF8DC
, "dunkle Goldrutenfarbe", 0xB8860B, "Dunkelgrün", 0x006400, "dunkles Khaki", 0xBDB76B, "dunkles Magentarot", 0x8B008B
, "dunkles Olivgrün", 0x556B2F, "dunkles Orange", 0xFF8C00, "Dunkelrot", 0x8B0000, "dunkle Lachsfarbe", 0xE9967A
, "Khaki", 0xF0E68C, "helle Lachsfarbe", 0xFFA07A, "Orange", 0xFFA500, "Olivgrün", 0x808000, "Mitternachtsblau", 0x191970
); //"schwarz", 0x000000,
//, "", 0x000000 , "", 0x000000, "", 0x000000 , "", 0x000000 , "", 0x000000, "", 0x000000
public function Tonzelle(x:int, y:int, f:String):void //
{
Kerndurchmesser = 5;
Durchmesser1 = 10*Kerndurchmesser;
Durchmesser2 = Kerndurchmesser*3;
Wachstumsrichtung = 1;
graphics.lineStyle( 0,getFarbe(f));
graphics.beginFill(getFarbe(f),1);
graphics.drawCircle(0,0, Kerndurchmesser);
graphics.endFill();
graphics.drawEllipse(-Durchmesser1/2,-Durchmesser2/2,Durchmesser1,Durchmesser2);
this.x = x;
this.y = y;
xPos = x;
yPos = y;
Farbe = f;
this.addEventListener(Event.ENTER_FRAME, aktionen);
this.addEventListener(MouseEvent.MOUSE_DOWN, dragAn);
this.addEventListener(MouseEvent.MOUSE_UP, dragAus);
}
public function getFarbe(Farbe:String):uint
{
var Position:uint = Farbliste.indexOf (Farbe) + 1;
if (Farbliste.indexOf (Farbe) < 0) {Position = 1} //Farbe nicht in Liste -> Mach es in Rot !
return Farbliste[Position] // 0xff0000; // 254;
}
public function zufallsFarbe():void{
var Zuffi:int = Math.random() * Farbliste.length/2;
Zuffi=Zuffi *2;
Farbe = Farbliste[Zuffi]
}
public function dragAn(e:MouseEvent):void{
e.target.startDrag();
Schiebemodus = 1;
}
public function dragAus(e:MouseEvent):void{
e.target.stopDrag();
Schiebemodus = 0;
}
public function aktionen (e:Event):void //
{
Durchmesser1 += Wachstumsrichtung;
Durchmesser2 -= Wachstumsrichtung;
if (Durchmesser1 > 10*Kerndurchmesser) {Wachstumsrichtung = -1;}
if (Durchmesser1 < Kerndurchmesser*3) {Wachstumsrichtung = 1;}
graphics.clear();
graphics.lineStyle( 0,getFarbe(Farbe)); //Math.random() * 0xffffff
graphics.beginFill(getFarbe(Farbe),1);
if (Schiebemodus == 1) {graphics.beginFill(Math.random() * 0xffffff,1);}
graphics.drawCircle(0,0, Kerndurchmesser);
graphics.endFill();
graphics.drawEllipse(-Durchmesser1/2,-Durchmesser2/2,Durchmesser1,Durchmesser2);
graphics.drawEllipse(-Durchmesser2/2,-Durchmesser1/2,Durchmesser2,Durchmesser1);
graphics.drawCircle(0,0, Durchmesser1/2);
if (Abstandsmodus != 0) {graphics.beginFill(Math.random() * 0xffffff,1);}
graphics.drawCircle(0,0, Durchmesser2/2);
this.rotation +=2;
}
}
import flash.display.Sprite;
import flash.events.*;
class Taktzelle extends Sprite
{
public var xPos:uint;
public var yPos:uint;
public var Farbe:String;
public var Kerndurchmesser:int;
public var Durchmesser1:int;
public var Taktmesser:int;
public var Schiebemodus:int = 0; //0 = still, 1 = drag aktiv
public var Farbliste:Array = new Array(
"rot", 0xff0000, "grün", 0x000ff00, "blau", 0x0000ff , "weiss", 0xffffff
,"grau", 0x888888, "hellgrau", 0xbbbbbb , "dunkelgrau", 0x444444
, "lila", 0x800080 , "rosa", 0xFF00FF, "gelb", 0xFFFF00 , "türkis", 0x00FFFF
, "Aliceblau", 0xF0F8FF, "Antik-Weiß", 0xFAEBD7, "Aquamarinblau", 0x7FFFD4, "Blauviolett", 0x8A2BE2, "Braun", 0xA52A2A, "grobes Braun", 0xDEB887
, "Kadettblau", 0x5F9EA0, "Hellgrün", 0x7FFF00, "Schokolade", 0xD2691E, "Kornblumenblau", 0x6495ED, "Koralle", 0xFF9966, "Mais", 0xFFF8DC
, "dunkle Goldrutenfarbe", 0xB8860B, "Dunkelgrün", 0x006400, "dunkles Khaki", 0xBDB76B, "dunkles Magentarot", 0x8B008B
, "dunkles Olivgrün", 0x556B2F, "dunkles Orange", 0xFF8C00, "Dunkelrot", 0x8B0000, "dunkle Lachsfarbe", 0xE9967A
, "Khaki", 0xF0E68C, "helle Lachsfarbe", 0xFFA07A, "Orange", 0xFFA500, "Olivgrün", 0x808000, "Mitternachtsblau", 0x191970
); //"schwarz", 0x000000,
//, "", 0x000000 , "", 0x000000, "", 0x000000 , "", 0x000000 , "", 0x000000, "", 0x000000
public function Taktzelle(x:int, y:int, d:int, f:String):void //
{
Kerndurchmesser = 10;
Durchmesser1 = d;
Taktmesser = Kerndurchmesser;
graphics.lineStyle( 0,getFarbe(f));
graphics.beginFill(getFarbe(f),1);
graphics.drawCircle(0,0, Kerndurchmesser);
graphics.endFill();
graphics.drawCircle(0,0, Durchmesser1);
this.x = x;
this.y = y;
xPos = x;
yPos = y;
Farbe = f;
this.addEventListener(Event.ENTER_FRAME, aktionen);
this.addEventListener(MouseEvent.MOUSE_DOWN, dragAn);
this.addEventListener(MouseEvent.MOUSE_UP, dragAus);
}
public function getFarbe(Farbe:String):uint
{
var Position:uint = Farbliste.indexOf (Farbe) + 1;
if (Farbliste.indexOf (Farbe) < 0) {Position = 1} //Farbe nicht in Liste -> Mach es in Rot !
return Farbliste[Position] // 0xff0000; // 254;
}
public function zufallsFarbe():void{
var Zuffi:int = Math.random() * Farbliste.length/2;
Zuffi=Zuffi *2;
Farbe = Farbliste[Zuffi]
}
public function dragAn(e:MouseEvent):void{
e.target.startDrag();
Schiebemodus = 1;
}
public function dragAus(e:MouseEvent):void{
e.target.stopDrag();
Schiebemodus = 0;
}
public function aktionen (e:Event):void //
{
Taktmesser += 1;
if (Taktmesser > Durchmesser1) {Taktmesser = Kerndurchmesser}
graphics.clear();
graphics.lineStyle( 0,getFarbe(Farbe));
graphics.beginFill(getFarbe(Farbe),1);
if (Schiebemodus == 1) {graphics.beginFill(Math.random() * 0xffffff,1);}
graphics.drawCircle(0,0, Kerndurchmesser);
graphics.endFill();
graphics.drawCircle(0,0, Durchmesser1);
graphics.lineStyle( 0,getFarbe(Farbe),(Taktmesser/Durchmesser1));
graphics.drawCircle(0,0, Taktmesser);
}
}