...
// loop through until we find the root note
// grab the third and the fifth and exit the loop
for (var i:int = 0; i<leng; i++){
if (cMajor[i] == note){
third = cMajor[(i + 2) % leng];
fifth = cMajor[(i + 4) % leng];
break;
}
}
// we may need a double sharp on the middle note
var sharpFlatDouble:String = sharpFlat;
// check if this is a sharp, check if it is A or D
// if it is add the symbol for double sharp
if (sharpFlat == "#"){
if (note == "D" || note == "A"){
sharpFlatDouble = "x";
}
}
...
If your working on some code… just randomly copy a piece of it and paste it in the comments… This code is from a program that generates any major scale (it’s still not finished). Feel free to post code chunks in any language…
[EDIT] the code doesn’t need to work on its own… you can just randomly copy from something your working on…
var nn:int = 100 * 100;
for (i = 0;i > 16< nn; i++ ) { var r:int = ((cFrontOn >> 16) & 0xff);
var g:int = ((cFrontOn >> 8 ) & 0xff);
var b:int = (cFrontOn & 0xff);
var mod:Number = Math.random();
var rgb:int = r * mod << 16 | g * mod << 8 | b * mod; arrayColId = i % 100; if ( arrayColId == 0 ) { arrayRowId++; dotsArray2d[ arrayRowId ] = []; } dotsArray2d[ arrayRowId ][ arrayColId ] = { x: arrayColId * dotGap + Math.random() * dotGap * 2 - dotGap, y: arrayRowId * dotGap + Math.random() * dotGap * 2 - dotGap, colour: rgb }; }
// pre tag test for (var i:int = 0; i<10; i++){ trace("hello"); }private function renderHandler(event:Event):void {
_bmd.draw(_vid);
try {
if (_detector.detectMarkerLite(_raster, 80) && _detector.getConfidence() > .2) {
_viewport.visible = true;
_detector.getTransformMatrix(_transformObject);
_flarContainer.setTransformMatrix(_transformObject);
_renderEngine.renderScene(_scene, _virtualcam, _viewport);
} else {
_viewport.visible = false;
}
} catch (err:Error) {
// nuts to you error
}
}
front.graphics.beginBitmapFill( blanc, new Matrix( 2, 0, 0, 2 ), false );
front.graphics.drawTriangles( vectors, indices, uvsFront, TriangleCulling.POSITIVE );
front.graphics.endFill();
}
private function onComplete():void
{
clearInterval( animInterval );
_folding = false;
dispatchEvent( new Event( Event.COMPLETE, false, true) );
public static function setRandomColor(item:DisplayObject, setRandomAlpha:Boolean = false){
setColor(item, (Math.floor(Math.random() * 16777215)), Math.random());
}
//method to set a specified movieClip(item:movidClip) to a specified color(col:hex value number)
public static function setColor(item:DisplayObject, col:Number, alf:Number = 1) {
var myColor:ColorTransform = item.transform.colorTransform;
//check color bounds
if (col > 16777215) col = 16777215;
else if (col 1) alp = 1;
else if (alp < 0) alp = 0; myColor.alphaMultiplier = alf; item.transform.colorTransform = myColor; }
private function drawCurve(h1:Sprite, h2:Sprite, h3:Sprite):void
{
var m:Point = new Point((h1.x + h3.x) / 2, (h1.y + h3.y) / 2);
var ip:Point = new Point(2 * h2.x – m.x, 2 * h2.y – m.y);
graphics.curveTo(ip.x, ip.y, h3.x, h3.y);
}
var xOffset : Number = x % _spacing;
if (Math.abs (xOffset) <= _spacing * 0.5) { _targetX = (x - xOffset); } else { _targetX = (x - xOffset) - _spacing; }
var bmd:BitmapData = new BitmapData(16, 8, false, 0xFFFFFF);
var bm:BitmapMaterial = new BitmapMaterial(bmd);
//bm.doubleSided = true;
var mat:ShadedMaterial = new ShadedMaterial(bm, shader);
mat.doubleSided = true;
_plane = new Plane(mat, 16, 8, 5, 1);
addChild(_plane);
var pl:ViewportLayer = layer.getChildLayer(_plane, true);
pl.sortMode = ViewportLayerSortMode.INDEX_SORT;
place();
onOver = over;
_mstack = new ModifierStack(new LibraryPv3d(), _plane);
_bend = new Bend( Math.random() – .5, Math.random() * .2 + .4, Math.random() * .6 – .3);
_mstack.addModifier(_bend);
_mstack.apply();
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
graphics.lineStyle(3);
graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
_massLoader = new CompositeMassLoader();
MassLoader(_massLoader.massLoader).alwaysDispatchProgressEvent = true;
_massLoader.massLoader.addEventListener(Event.OPEN, handleOpen);
_massLoader.massLoader.addEventListener(ProgressEvent.PROGRESS, handleProgress);
_massLoader.massLoader.addEventListener(Event.COMPLETE, handleComplete);
_massLoader.massLoader.addEventListener(MassLoadEvent.FILE_OPEN, handleFileOpen);
_massLoader.massLoader.addEventListener(MassLoadEvent.FILE_CLOSE, handleFileClose);
_lfDo = _massLoader.addFile(“sound/do.mp3”);
_lfMi = _massLoader.addFile(“sound/mi.mp3”);
_massLoader.start();
}
// if the element is found as a firstChild of the XMLList items
if(checkNodeLocation[0].hasOwnProperty(element_p)) {
for each(xmlItem in checkNodeLocation) {
obj = {storedXml:xmlItem, nodeToSort:xmlItem[element_p].toString()};
sortArray.push(obj);
}
// if the xml node you’re sorting on is the first child of the xml, then use this to store and sort
} else if(xml_p.hasOwnProperty(element_p)) {
var qLen:int = checkNodeLocation.length();
for (var q:int=0; q
// Draw the Fibonacci spiral
var phi:Number = 1.61803399;
var g:Graphics = graphics;
var r2:Rectangle, r3:Rectangle, r:Rectangle = new Rectangle(0,0,stage.stageWidth,stage.stageWidth / phi);
var b1:int, b2:int, b3:int, i:int = 0
var p:Array = [‘x’,’y’,’width’,’height’,’left’,’right’,’top’,’bottom’];
g.lineStyle(0,0×000000);
while (r.width > 1)
{
g.drawRect (r.left,r.top,r.width,r.height);
b1 = i%2, b2 = (i*0.5<<0)%2, b3 = ((i+1)*0.5<< 0)%2; g.moveTo(r[b2?p[5]:p[4]],r[b3?p[6]:p[7]]); r2 = r.clone(); r3 = r.clone(); r2[[p[0],p[1],p[2],p[3]][i%4]]+=(r[b1?p[3]:p[2]]/phi)*(b2?-1:1); r=r.intersection(r2); g.curveTo(r3[b3?p[5]:p[4]],r3[b2?p[7]:p[6]],r[b3?p[5]:p[4]],r[b2?p[7]:p[6]]); i++; }
@justin… that’s a great one!
// maybe too much code for this. simple scroll with snap interval values, automatic direction (Horizontal/vertical), and background click.
var w: int = 60, h: int = 120,border: int= 5,snapValue: Number = 0.1,
ref: Array = [{ p: ‘x’, s: ‘width’, s2: ‘w’, m: ‘mouseX’ },{ p: ‘y’, s: ‘height’, s2: ‘h’, m: ‘mouseY’ }],
dir: Boolean = w > h, r: Object = ref[ int(!dir)],scroll:Sprite=addChild( new Sprite ) as Sprite,
back: Shape = scroll.addChild( new Shape ) as Shape,tracker: Sprite=scroll.addChild( new Sprite ) as Sprite,
offset: Number, _value : Number = 0,maxBound: Number ;
drawBox( tracker.graphics, (dir?w/4:w)-border*2, (!dir?h/4:h)-border*2, 0xFF0000 ) ;
drawBox( back.graphics, w, h, 0x333333 ) ;
maxBound = back[ r.s ] – tracker[ r.s ] – border;
scroll.x = scroll.y = 30 ;
tracker.buttonMode = true ;
tracker.x = border ;
constrain()
tracker.addEventListener( MouseEvent.MOUSE_DOWN, onGrab ) ;
scroll.addEventListener( MouseEvent.MOUSE_DOWN, onScrollClick ) ;
function onGrab( $event: MouseEvent ): void {
offset = tracker[ r.m ] ;
stage.addEventListener( MouseEvent.MOUSE_MOVE, onDrag ) ;
stage.addEventListener( MouseEvent.MOUSE_UP, onDrop ) ;
}
function onDrag( $event: MouseEvent ): void {
tracker[ r.p ] = scroll[ r.m ] – offset ;
adjustAndUpdate( ) ;
}
function constrain( ): void {
// snap value.
tracker[ r.p ] = tracker[ r.p ] – tracker[ r.p ] % ( maxBound * snapValue ) ;
var min: Number = border, max: Number = maxBound
tracker[ r.p ] = Math.min( max, Math.max( tracker[ r.p ], min )) ;
}
function onDrop( $event: MouseEvent ): void {
stage.removeEventListener( MouseEvent.MOUSE_MOVE, onDrag ) ;
stage.removeEventListener( MouseEvent.MOUSE_UP, onDrop ) ;
}
function onScrollClick( $event: MouseEvent ): void {
value = scroll[ r.m ] / scroll[ r.s ] ;
}
function set value( $value: Number ): void {
tracker[ r.p ] = $value * back[ r.s ] ;
adjustAndUpdate( ) ;
}
function get value( ): Number {
return _value ;
}
function adjustAndUpdate( ) {
constrain( ) ;
_value = (tracker[ r.p ]-border) / (maxBound – border) ;
dispatchEvent( new Event( Event.CHANGE )) ;
trace( “value: “, _value )
}
function drawBox( $g: Graphics, $w: int, $h: int, $color: uint ): void {
$g.beginFill( $color ) ;
$g.drawRect( 0, 0, $w, $h ) ;
$g.endFill( ) ;
}
/*XML ticker */
var url_toget:String;
url_toget = root.loaderInfo.parameters.url_toget;
var loader:URLLoader = new URLLoader();
var t:Timer = new Timer(25000,1);
t.addEventListener(TimerEvent.TIMER, tickEvent);
//t.start();
var i:int = 0;
var xml;
function tickEvent(e:TimerEvent)
{
getURL();
}
if(!loader.hasEventListener(Event.COMPLETE))
{
loader.addEventListener(Event.COMPLETE, loadXML);
}
function getURL():void
{
loader.load(new URLRequest(url_toget));
}
function loadXML(e:Event):void
{
xml = new XML(e.target.data);
doSomethingWithThe(xml);
}