Andaikan keputusan yang dibuat berjumlah lebih dari satu buah (lebih dari satu baris kode) untuk setiap kondisi, mungkin itu masih bisa dikatakan wajar. Namun ketika situasi terkondisi yang diciptakan hanya terdiri dari satu baris kode saja, menerapkan kondisional dengan cara seperti di atas sangat tidak efisien. Contoh sederhana adalah ketika Anda menentukan nilai suatu variabel berdasarkan kondisi tertentu seperti ini:
(a ==0) ? trace("ockey") : (a == "foo") ? trace("gak ockey") : trace("Selain");
By Ricko nada di Pustaka Flash terima kasih telah membaca :)
Jalan Pintas untuk Peraturan if/else
package com.PustakaFlash.text
{
import flash.text.TextField;
import flash.events.Event;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.TextEvent;
public class UndoRedo
{
private var a:Array = new Array();
private var r:Array = new Array();
private var c:TextField;
private var d:String;
private var e:String;
private var f:Timer;
private var g:int = 5;
public function UndoRedo():void
/*
* import com.PustakaFlash.text.*;
* var hm:UndoRedo = new UndoRedo();
* inputTxt.text = "";
* hm.mulai(inputTxt,500,5);
* inputTxt.addEventListener(Event.CHANGE, onChange);
* function onChange(e:Event):void
* {
* }
* //------------------------------------------------------------
* undo.addEventListener(MouseEvent.CLICK, onUndo);
* redo.addEventListener(MouseEvent.CLICK, onRedo);
*
* function onUndo(e:MouseEvent):void
* {
* hm.Undo();
* }
* function onRedo(e:MouseEvent):void
* {
* hm.Redo();
* }
*/
public function mulai(textfield:TextField,sensitivity:int,gory:int):void
{
c = textfield;
d = c.text;
g = gory;
if (sensitivity < 1)
{
sensitivity = 1;
}
if (sensitivity > 50000)
{
sensitivity = 50000;
}
f = new Timer(sensitivity);
c.addEventListener(Event.CHANGE, onChange);
c.addEventListener(TextEvent.TEXT_INPUT, onInput);
f.addEventListener(TimerEvent.TIMER, onTimer);
}
private function onChange(e:Event):void
{
f.reset();
f.start();
}
private function onInput(e:TextEvent):void
{
r = [];
}
private function onTimer(e:TimerEvent):void
{
f.stop();
saveHistory();
}
private function saveHistory():void
{
a.push(d);
if (a.length > g)
{
a.shift();
}
d = c.text;
e = d;
}
public function clearHistory():void
{
a = [c.text];
r = [];
d = c.text;
e = "";
}
public function Undo():void
{
var undoID:int = a.length-1;
var temp:String = "";
if (undoID != -1)
{
temp = a[undoID];
r.push(e);
a.splice(undoID, 1);
d = temp;
e = temp;
}
else
{
temp = c.text;
}
c.text = temp;
}
public function Redo():void
{
var redoID:int = r.length-1;
var temp:String = "";
if (redoID != -1)
{
temp = r[redoID];
a.push(temp);
r.splice(redoID, 1);
}
else
{
temp = c.text;
}
c.text = temp;
}
}
}
package com.PustakaFlash.text
{
/**
* ...
* @author Ricko
* imort com.PustakaFlash.text .*;
* XmlberWarna.xmlkpala="quis";
XmlberWarna.kpalawarna=0xFF9900;
XmlberWarna.defaultFormat = 0xFFFFFF;
XmlberWarna.commentFormat = 0x999999;
XmlberWarna.tagFormat = 0x00CC00;
XmlberWarna.cdataFormat = 0xFF9900;
XmlberWarna.attributeFormat = 0x0066FF;
XmlberWarna.Formatvar=0xFFFF00;
XmlberWarna.colorize(mc.tes);
*/
public class XmlberWarna
{
import flash.text.*;
// awal jika blum di sett
private static var tagkepala:TextFormat = new TextFormat('Arial', null, 0x999999,true);
private static var a:TextFormat = new TextFormat('Arial', 12, 0x000000);
private static var b:TextFormat = new TextFormat(null, null, 0x999999,true);
private static var c:TextFormat = new TextFormat(null, null, 0xCC0000,true);
private static var d:TextFormat = new TextFormat(null, null, 0x00CC00);
private static var e:TextFormat = new TextFormat(null, null, 0x0000CC,true);
private static var f:TextFormat = new TextFormat(null, null, 0xFFFFFF);
// awl regwxExp jika blum disett
private static var tgkpla: RegExp ;
private static var ar: RegExp = /(<[^/gs;
private static var brr: RegExp = //g;
private static var dr: RegExp = /[a-z0-9_]*=|[a-z0-9_]*=/gi;
private static var er: RegExp = /)/gs;
private static var fr: RegExp = /"(.*?)"|'(.*?)'/gi;
// sets the format for normal text di dalam xml
public static function set defaultFormat(v:*) : void
{
if (v is TextFormat)
{ a = v as TextFormat; return void; }
a.color = v;
}
public static function get defaultFormat() : TextFormat
{
return a;
}
// sets the format for comment text di XML
public static function set commentFormat(v:*) : void
{
if (v is TextFormat)
{ b = v as TextFormat; return void; }
b.color = v;
}
public static function get commentFormat() : TextFormat
{
return b;
}
// sets the format for tags di XML
public static function set tagFormat(v:*) : void
{
if (v is TextFormat)
{ c = v as TextFormat; return void; }
c.color = v;
}
public static function get tagFormat() : TextFormat
{
return c;
}
// sets the format for CDATA tags di XML
public static function set cdataFormat(v:*) : void
{
if (v is TextFormat)
{ d = v as TextFormat; return void; }
d.color = v;
}
public static function get cdataFormat() : TextFormat
{
return d;
}
// sets the format for CDATA tags di XML
public static function set attributeFormat(v:*) : void
{
if (v is TextFormat)
{ e = v as TextFormat; return void; }
e.color = v;
}
public static function get attributeFormat() : TextFormat
{
return e;
}
// sets the format for var tags di XML
public static function set Formatvar(v:*) : void
{
if (v is TextFormat)
{ f= v as TextFormat; return void; }
f.color = v;
}
public static function get attributeFormatvar() : TextFormat
{
return f;
}
public static function set kpalawarna(v:*) : void
{
if (v is TextFormat)
{ tagkepala= v as TextFormat; return void; }
tagkepala.color = v;
}
public static function get kpalawarna() : TextFormat
{
return tagkepala;
}
//set tag kepala
public static function set xmlkpala(v:*) :*
{
{tgkpla = new RegExp("\<" + v+ "(.*?)\>|\<\/" + v + "\>","gi");}
}
public static function get xmlkpala() :*
{
return tgkpla;
}
public static function colorize(_txt: TextField) : void
{
_txt.setTextFormat(a);
var txt: String = _txt.text;
var match: Object;
// this colors tags
match = ar.exec(txt);
while (match != null)
{
_txt.setTextFormat(c, match.index, match.index + match[0].length);
match = ar.exec(txt);
}
// this colors CDATA start tags
match = brr.exec(txt);
while (match != null)
{
_txt.setTextFormat(d, match.index, match.index + match[0].length);
match = brr.exec(txt);
}
// this colors CDATA end tags
match = cr.exec(txt);
while (match != null)
{
_txt.setTextFormat(d, match.index, match.index + match[0].length);
match = cr.exec(txt);
}
// this colors attributes
match = dr.exec(txt);
while (match != null)
{
_txt.setTextFormat(e, match.index, match.index + match[0].length);
match = dr.exec(txt);
}
// this colors multi-line comments
match = er.exec(txt);
while (match != null)
{
_txt.setTextFormat(b, match.index, match.index + match[0].length);
match = er.exec(txt);
}
// this colors var
match = fr.exec(txt);
while (match != null)
{
_txt.setTextFormat(f, match.index, match.index + match[0].length);
match = fr.exec(txt);
}
match = tgkpla.exec(txt);
while (match != null)
{
_txt.setTextFormat(tagkepala, match.index, match.index + match[0].length);
match = tgkpla.exec(txt);
}
}
}
}
package com.PustakaFlash.Display
{
import flash.display.MovieClip;
import flash.display.Stage;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
/**
* import com.PustakaFlash.Display.*;
var tes:Tooltip=new Tooltip();
var isitooltips:Vector;
Tooltip.SetupStage(stage);
Tooltip.ConfigureTooltip(true,true,0xFFFF99);
Tooltip.ConfigureTextTooltip();
btn.addEventListener(MouseEvent.MOUSE_OVER, tmpil("saya adalah tooltip pertama"));
btn2.addEventListener(MouseEvent.MOUSE_OVER, tmpil("saya adalah tooltip kedua"));
btn.addEventListener(MouseEvent.MOUSE_OUT, hlg);
btn2.addEventListener(MouseEvent.MOUSE_OUT, hlg);
function hlg(event:MouseEvent):void
{
Tooltip.Hide();
}
function tmpil(msg)
{ return function( e:MouseEvent ){
Tooltip.Show(msg);
}
}
*/
public class Tooltip
{
static private var a:TextField;
static private var b:String;
static private var c:String;
static private var d:Stage;
static private var e:Boolean;
static private var f:*;
static private var g:Boolean;
static private var h:Boolean;
static private var i:uint;
static private var j:MovieClip;
static private var k:Boolean = false;
static private var l:TextFormat;
static private var m:uint;
static private var n:String;
static private var o:int;
static private var p:Boolean;
public function Tooltip():void
{
// constructor code
trace("@Author :: Ricko Nada ");
trace("@website :: PustakaFlash.com ");
}
//************CONFIGURE METHODS*****************//
public static function set Parent(value:MovieClip):void
{
j = value;
k = true;
}
public static function get Parent():MovieClip
{
return j;
}
public static function SetupStage(projectStage):void
{
d = projectStage;
}
public static function ConfigureTooltip(hasBG:Boolean = true, hasBorder:Boolean = true, BGColor:uint = 0x666666):void
{
e = false;
f = TextFieldAutoSize.LEFT;
g = hasBG;
h = hasBorder;
i = BGColor;
ResetTooltipTextField();
}
public static function ConfigureTextTooltip(color:uint = 0xFFFFFF, size:int = 10, underline:Boolean = false, font:String = "Verdana"):void
{
if(a == null) { return; }
m = color;
n = font;
o = size;
p = underline;
l = new TextFormat();
l.font = n;
l.color = m;
l.size = o;
l.underline = p;
a.defaultTextFormat = l;
}
//************PUBLIC METHODS*****************//
public static function Show(texte:String = ""):void
{
if (e)
{
Hide();
}
ResetTooltipTextField();
a.text = texte;
if (a.textWidth > 200)
{
a.width = 200;
}
else
{
a.width = a.textWidth + 10;
}
a.height = a.textHeight + 5;
e = true;
MoveTooltip();
if (k)
{
if (j == null) { return; }
j.addChild(a);
}
else
{
if (d == null) { return; }
d.addChild(a);
}
}
public static function Hide():void
{
if (k)
{
if (j == null) { return; }
if (j.contains(a))
{
j.removeChild(a);
e = false;
}
}
else
{
if (d == null) { return; }
if (d.contains(a))
{
d.removeChild(a);
e = false;
}
}
}
public static function Invalidate():void
{
ResetTooltipTextField();
ResetTextFormat();
if (e)
{
Show();
}
}
public static function set BackgroundColor(value:uint):void
{
i = value;
}
public static function get BackgroundColor():uint
{
return i;
}
public static function set Align(value:String):void
{
f = value;
}
public static function get Align():String
{
return f;
}
public static function set HasBackgroundColor(value:Boolean):void
{
g = value;
}
public static function get HasBackgroundColor():Boolean
{
return g;
}
public static function set HasBorder(value:Boolean):void
{
h = value;
}
public static function get HasBorder():Boolean
{
return h;
}
public static function set TextColor(value:uint):void
{
m = value;
}
public static function get TextColor():uint
{
return m;
}
public static function set Font(value:String):void
{
n = value;
}
public static function get Font():String
{
return n;
}
public static function set TextSize(value:int):void
{
o = value;
}
public static function get TextSize():int
{
return o;
}
public static function set IsUnderline(value:Boolean):void
{
p = value;
}
public static function get IsUnderline():Boolean
{
return p;
}
public static function set UseParent(value:Boolean):void
{
k = value;
}
public static function get UseParent():Boolean
{
return k;
}
//************PRIVATE METHODS*****************//
static public function MoveTooltip():void
{
if (e == false) { return; }
var h:int = a.height;
var myPositions:Array = GetPosition();
var myX:int = 0;
var myY:int = 0;
if(myPositions[0] == "left")
{
myX = d.mouseX - a.width - 10;
}
else
{
myX = d.mouseX + 40;
}
if(myPositions[1] == "up")
{
myY = d.mouseY - a.height;
}
else
{
myY = d.mouseY;
}
if((myY + a.height) > d.height)
{
var diff:int = (myY + a.height) - d.stageHeight;
myY -= diff;
}
a.x = myX;
a.y = myY;
}
private static function GetPosition():Array
{
var myX:int = d.mouseX;
var myY:int = d.mouseY;
var stageW:int = d.stageWidth;
var stageH:int = d.stageHeight;
if(myX < (stageW/2))
{
b = "right";
}
else
{
b = "left";
}
if(myY < (stageH/2))
{
c = "bottom";
}
else
{
c = "top";
}
var myArray:Array = new Array(b, c);
return myArray;
}
private static function ResetTooltipTextField():void
{
a = new TextField();
a.autoSize = f;
a.background = g;
a.border = h;
a.backgroundColor = i;
a.selectable = false;
a.wordWrap = true;
}
static private function ResetTextFormat():void
{
l = new TextFormat();
l.font = n;
l.color = m;
l.size = o;
l.underline = p;
a.defaultTextFormat = l;
}
}
}
package com.PustakaFlash.text
{
import com.PustakaFlash.events.TypeWriterEvent;
import flash.text.TextField;
import flash.utils.Timer;
import flash.events.TimerEvent;
/**
* ...
* @author Ricko
*/
public class TypeWriter extends TextField
{
private var i:String;
private var t:TextField;
private var evt:TypeWriterEvent;
private var c:uint;
private var d:String;
private var Ti:Timer;
public function TypeWriter(a:String, Te:TextField)
{
i = a;
t = Te;
}
private function doWrite(e:TimerEvent):void
{
t.text = i.substr(0, c);
if (c <= i.length)
{
d = i.substr(c - 1, 1);
c ++;
evt = new TypeWriterEvent(TypeWriterEvent.TYPING, {characterCounter:c, currentCharacter:d});
t.dispatchEvent(evt);
}
else
{
stop();
}
}
public function start():void
{
Ti = new Timer(50);
Ti.start();
Ti.addEventListener(TimerEvent.TIMER, doWrite);
evt = new TypeWriterEvent(TypeWriterEvent.START);
t.dispatchEvent(evt);
}
public function stop():void
{
Ti.stop();
Ti.removeEventListener(TimerEvent.TIMER, doWrite);
Ti = null;
c = 0;
evt = new TypeWriterEvent(TypeWriterEvent.COMPLETE);
t.dispatchEvent(evt);
}
}
}
package com.PustakaFlash.events
{
/**
* ...
* @author Ricko
*/
import flash.events.Event;
public class TypeWriterEvent extends Event
{
public static const START:String = "START";
public static const TYPING:String = "TYPING";
public static const COMPLETE:String = "COMPLETE";
public var optionalParameters:Object;
public function TypeWriterEvent(type:String, optionalParams:Object = null, bubbles:Boolean = false, cancelable:Boolean = false):void
{
super(type, bubbles, cancelable);
this.optionalParameters = optionalParams;
}
public override function clone():Event
{
return new TypeWriterEvent(type, this.optionalParameters, bubbles, cancelable);
}
}
}
function kembalikan(str:String):String
{
return new XMLDocument(str).firstChild.nodeValue;
}
function htmlparse(str:String):String
{
return XML( new XMLNode( XMLNodeType.TEXT_NODE, str ) ).toXMLString();
}
trace(htmlparse("Pustaka & Flash"));
trace(kembalikan("Pustaka & Flash"));
Pustaka & Flash
Pustaka & Flash
var menu:Array = [mc1,mc2];
var fungsi:Array = [fungsimc1,fungsimc2];
for (var i:int = 0; i < menu.length; i++)
{
menu[i].buttonMode = true;
menu[i].addEventListener(MouseEvent.CLICK, fungsiklik);
}
function fungsiklik(event:MouseEvent):void
{
for (var i:int = 0; i < menu.length; i++)
{
if (event.currentTarget == menu[i])
{
fungsi[i]();
}
}
}
function fungsimc1()
{
trace("mc1");
}
function fungsimc2()
{
trace("mc2");
}
<informasi>
<produk> Meja makan
<description> Sesuatu untuk tempat makan </description>
<harga> Rp 50.000 </harga>
</produk>
<produk> Sofa
<description> Sesuatu untuk diduduki </description>
<harga> Rp 200.000 </harga>
</produk>
<produk> Lemari
<description> Sesuatu untuk menyimpan pakaian </description>
<harga> Rp 500.000 </harga>
</produk>
</informasi>
Data
Keterangan
Tampilan/Contoh Tampilan
data:post.editUrl
Elemen ini akan menghasilkan URL pengeditan posting
Elemen ini akan menghasilkan deskripsi/pesan tautan pengeditan posting
Edit Entri
data:post.adminClass
Elemen ini akan menghasilkan kelas khusus administrator (???)
blog-admin pid-251761511
package
{
import flash.display.Sprite;
import flash.events.Event;
public class Module extends Sprite
{
public function Module()
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// ** actual application code begins **
// ** stage is no longer null **
stage.showDefaultContextMenu = false;
}
}
}
var keyLeft = false;
var keyRight = false;
var balikLeft = false;
var balikRight = false;
var rotationSpeed;
stage.addEventListener(KeyboardEvent.KEY_DOWN, tekanKey);
stir.addEventListener(Event.ENTER_FRAME, stirEnterFrame);
stage.addEventListener(KeyboardEvent.KEY_UP, lepas);
function tekanKey(control)
{
if (control.keyCode == 37)
{
keyLeft = true;
rotationSpeed = 5;
}
else if (control.keyCode == 39)
{
keyRight = true;
rotationSpeed = 5;
}
}
function lepas(control)
{
if (control.keyCode == 37)
{
keyLeft = false;
balikLeft = true;
rotationSpeed = 1;
}
else if (control.keyCode == 39)
{
keyRight = false;
balikRight = true;
rotationSpeed = 1;
}
}
function stirEnterFrame(control)
{
var velocity = 0;
if (keyLeft&& control.currentTarget.rotation>-90 )
{
control.currentTarget.rotation -= rotationSpeed;
}
else if (keyRight && control.currentTarget.rotation<90)
{
// rotate the object
control.currentTarget.rotation += rotationSpeed;
}
else if (balikLeft)
{
if (stir.rotation < 0)
{
control.currentTarget.rotation += rotationSpeed;
}
else
{
balikLeft = false;
}
}
else if (balikRight)
{
if (stir.rotation > 0)
{
control.currentTarget.rotation -= rotationSpeed;
}
else
{
balikRight = false;
}
}
var putaran = control.currentTarget.rotation / 180 * Math.PI;
control.currentTarget.x += Math.cos(putaran) * velocity;
control.currentTarget.y += Math.sin(putaran) * velocity;
}
/*
Line 7-32
Original script by GMaker0507, http://www.actionscript.org/forums/member.php3?u=68019
from: http://www.actionscript.org/forums/showthread.php3?t=174057
*/
var Waypoints:Array = [];
var moveSpeed:Number= 3;
var lineFlag:Boolean;
function AddWaypoint (xPos:Number,yPos:Number) {
Waypoints.push (new Point(xPos,yPos));
}
function MoveToWaypoint () {
if (Waypoints.length > 0)
{
var difference:Point=Waypoints[0].subtract(new Point(box.x,box.y));
var distance = difference.length;
trace(distance);
if ((distance-moveSpeed) <= 1) {
box.x = Waypoints[0].x;
box.y = Waypoints[0].y;
Waypoints.splice (0,1);
} else {
difference.normalize (1);
box.x+=difference.x*moveSpeed;
box.y+=difference.y*moveSpeed;
trace(difference.x);
}
} else removeEventListener(Event.ENTER_FRAME,EnterFrame);
}
graphics.lineStyle(2,0xff0000);
stage.addEventListener(MouseEvent.MOUSE_DOWN, stageDownHandler);
function stageDownHandler(e:MouseEvent):void
{
stage.addEventListener(MouseEvent.MOUSE_MOVE, stageMoveHandler);
stage.addEventListener(MouseEvent.MOUSE_UP, stageUpHandler);
}
function stageUpHandler(e:MouseEvent):void
{
stage.removeEventListener(MouseEvent.MOUSE_MOVE, stageMoveHandler);
stage.removeEventListener(MouseEvent.MOUSE_UP, stageUpHandler);
}
function stageMoveHandler(e:MouseEvent):void
{
trace(stage.mouseX, stage.mouseY);
AddWaypoint(stage.mouseX, stage.mouseY);
if(!lineFlag)
{
graphics.moveTo(stage.mouseX, stage.mouseY);
lineFlag=true;
}
graphics.lineTo(stage.mouseX,stage.mouseY);
}
/*stage.addEventListener(MouseEvent.CLICK, stageClickHandler);
function stageClickHandler(e:MouseEvent):void
{
AddWaypoint(stage.mouseX, stage.mouseY);
if(!lineFlag)
{
graphics.moveTo(stage.mouseX, stage.mouseY);
lineFlag=true;
}
graphics.lineTo(stage.mouseX,stage.mouseY);
}
*/
function EnterFrame(event:Event)
{
MoveToWaypoint()
}
_start.addEventListener(MouseEvent.CLICK, startClickHandler);
function startClickHandler(e:MouseEvent):void
{
/* stage.removeEventListener(MouseEvent.CLICK, stageClickHandler);
*/ addEventListener(Event.ENTER_FRAME,EnterFrame);
}
Basic Three view As3
Ahirnya Setelah beberapa kali melakukan uji eksperiment akhirnya jadi juga threeview :p
<data>
<isi nama="Ricko">
<subisi nama="sub1">Lorep ipsum bla bla 1 Ricko</subisi>
<subisi nama="sub2">Lorep ipsum bla bla 2 RickoRickoRickoRicko</subisi>
<subisi nama="sub3">Lorep ipsum bla bla 3 RickoRickoRickoRickoRicko</subisi>
</isi>
<isi nama="Baba">
<subisi nama="sub1">Lorep ipsum bla bla 4 Baba</subisi>
</isi>
<isi nama="tesCuy">
<subisi nama="sub1">Lorep ipsum bla bla tesCuytesCuytesCuytesCuytesCuy</subisi>
</isi>
</data>
import flash.display.Sprite;
import com.PustakaFlash.*;
var xml:XML;
var n:int;
var subn:int;
var wd= new Sprite();
var cwd= new Sprite();
var gsr;
var mn;
var cdmn;
var posisiy:int;
var induk;
var ld:loadXml = new loadXml("threeviewAS3.xml");
ld.addEventListener(loadXml.COMPLETE, loadXmlCompleteHandler);
ld.addEventListener(loadXml.COMPLETE, loadXmlCompleteHandler);
ld.addEventListener(loadXml.ERROR, loadXmlErrorHandler);
ld.addEventListener(loadXml.SecurityError, loadXmlErrorHandler);
ld.addEventListener(loadXml.XML_ParseError, loadXmlErrorHandler);
function loadXmlCompleteHandler(e:Event):void
{
xml = ld.data;
n = xml.isi.length();
trace(xml.isi.@nama);
awal();
}
function loadXmlErrorHandler(e:Event):void
{
switch (e.type)
{
case loadXml.ERROR :
trace("file xml gak ketemu bos!!!");
break;
case loadXml.SecurityError :
trace("SecurityError");
break;
case loadXml.XML_ParseError :
trace("XML_ParseError");
break;
}
}
function awal()
{trace(n);
for (var j:int = 0; j<n; j++)
{ mn= new menu();
mn.x = 15;
mn.y = j * (mn.height+5);
mn.name = xml.isi. @ nama[j];
mn.id = j;
mn.data = j;
mn.label.text = xml.isi. @ nama[j];
addChild(wd);
wd.addChild(mn);
mn.buttonMode = true;
mn.mouseChildren = false;
mn.addEventListener(MouseEvent.CLICK, clickHandler);
}
garis.x=15;
garis.y=(mn.height/2)+2;
garis.height=(n*mn.height-5)+(subn*mn.height)-18;
}
function clickHandler(event:MouseEvent)
{ rmove();
awal();
trace(cwd);
var gsr = event.currentTarget.id + 1;
posisiy=((gsr-1) * (mn.height+5))+mn.height;
trace((gsr-1) * (mn.height+5));
trace(xml.isi[event.currentTarget.id ].subisi.@nama.length());
subn = xml.isi[event.currentTarget.id].subisi. @ nama.length();
trace(event.currentTarget.id)
induk=event.currentTarget.id;
garis.height=(n*mn.height-5)+(subn*mn.height)-15;
geser(gsr);
rmovechild();
childawal(posisiy,subn);
}
function geser(gsr)
{
for (var a:int = gsr; a<n; a++)
{
wd.getChildByName(xml.isi.@nama[a]).y += (subn*mn.height)+5;
}
}
function rmove()
{
while (wd.numChildren)
{
wd.removeChildAt(0);
}
removeChild(wd);
}
function rmovechild()
{
while (cwd.numChildren)
{
cwd.removeChildAt(0);
}
}
function childawal(posisiy:Number,subn:Number)
{
for (var j:int = 0; j<subn; j++)
{
cdmn= new menu2();
cdmn.x = 25;
cdmn.y = j * (cdmn.height+5);
cdmn.name = xml..subisi[j];
cdmn.id = j;
cdmn.data = xml..subisi[j];
cdmn.label.text = xml..subisi. @ nama[j];
if (cwd!=undefined)
{
addChild(cwd);
}
cwd.x = 25;
cwd.y = posisiy;
cwd.addChild(cdmn);
cdmn.buttonMode = true;
cdmn.mouseChildren = false;
cdmn.addEventListener(MouseEvent.CLICK, info);
}
}
function info(event:MouseEvent){
textInfo.text=xml.isi[induk].subisi[event.currentTarget.id];
}
var huruf:Array = new Array("b","a","b","a","c","c","d","b","b","b");
for (var k:int= 0; k < 10; k++)
{ removeYangSama(huruf);
}
trace(huruf);
function removeYangSama(sama:Array):void
{
var i:int;
var j:int;
for (i = 0; i < sama.length - 1; i++)
{
for (j = i + 1; j < sama.length; j++)
{
if (sama[i] == sama[j])
{
sama.splice(j, 1);
}
}
}
}
alternatif lain
var huruf:Array = ["b","a","b","a","c","c","d","b","b","b"];
trace(huruf.filter(function(e, i, huruf) {
return huruf.indexOf(e) == i;
}, this));
var ar1:Array = [1,2,3,4,5,6,7,8,9];
var ar2:Array = ['a','b','c','d','e','f','g','h'];
var ar3:Array = ['i','j','k','l'];
var ar4 = ar1.concat(ar2).concat(ar3);
trace(ar4);
import fl.controls.ComboBox;
import fl.data.DataProvider;
import flash.text.TextField;
import com.PustakaFlash.*;
var myComboBox:ComboBox = new ComboBox();
addChild(myComboBox);
var xml:XML;
var ld:loadXml = new loadXml("soal.xml");
myComboBox.move(427.3,15.35);
myComboBox.prompt = "Pilih Buah";
var textF:TextField = new TextField();
textF.text="No fruit selected"
addChild(textF);
textF.x=20
textF.y=20
textF.height=20
textF.width=100
textF.selectable=false;
ld.addEventListener(loadXml.COMPLETE, loadXmlCompleteHandler);
ld.addEventListener(loadXml.COMPLETE, loadXmlCompleteHandler);
ld.addEventListener(loadXml.ERROR, loadXmlErrorHandler);
ld.addEventListener(loadXml.SecurityError, loadXmlErrorHandler);
ld.addEventListener(loadXml.XML_ParseError, loadXmlErrorHandler);
function loadXmlCompleteHandler(e:Event):void
{
xml = ld.data;
var n:int = xml.number.length();
ambildata(xml);
}
function loadXmlErrorHandler(e:Event):void
{
trace("gakda");
}
var semuabuah:Array = [];
function ambildata(xml)
{
for each (var buah in xml.number)
{
semuabuah.push({fn: buah.@urutan, ln: buah.@benar, pn: buah.@pertanyaan_id});
}
susundata();
}
function susundata():void
{
myComboBox.dataProvider = new DataProvider ();
for (var i:int = 0; i<semuabuah.length; i++)
{
myComboBox.addItem({label: semuabuah[i].fn + " " + semuabuah[i].ln + "\n", data: i});
}
}
myComboBox.addEventListener(Event.CHANGE, onAddItem);
function onAddItem(event:Event):void {
textF.text="buah Number " + semuabuah[event.target.selectedItem.data].ln + "."
}
Simple Component Alert As3
/**class ini bersifat opensource tidak untuk diperjual belikan,
*walaupun demikian kami menghargai jika anda menghargai sumbernya
*------------Ricko Nada www.pustakaflash.com----------------------*
//AlertManager.as
/*import com.PustakaFlash.AlertManager;
bnttes.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler);
function fl_MouseClickHandler(event:MouseEvent):void
{
// Start your custom code
// This example code displays the words "Mouse clicked" in the Output panel.
trace("Mouse clicked");
// End your custom code
var message:AlertManager = new AlertManager(this,stage.stageWidth,stage.stageHeight);
message.alert("Upss Hai Ricko LOrep ipsum bla bla blabla bla.........",300,150,new Point(125,100));
// Same results as:;
// tes.alert("This is a test message!", 300, 200, new Point(125,100));
}*/
package com.PustakaFlash
{
import flash.display.DisplayObjectContainer;
import flash.display.MovieClip;
import flash.geom.Point;
import flash.display.Sprite;
import flash.text.TextField;
import flash.events.Event;
import flash.display.Stage;
import com.PustakaFlash.WindowAlert;
/*
**####################################
** @author Ricko www.pustakaflash.com
**####################################
*/
public class AlertManager extends MovieClip
{
private var w:Array;
private var df:DisplayObjectContainer;
private var i:AlertIcon;
private var pW:int;
private var pH:int;
public function AlertManager(defaultWindowContainer:DisplayObjectContainer, parentWidth:int, parentHeight:int)
{
trace(": AdvAlertManager instance created.");
df = defaultWindowContainer;
pW=parentWidth;
pH=parentHeight;
}
public function alert(text:String, width:int, height:int, position:Point = null):void
{
trace("Message: " + text);
trace("Message: " + width);
i= new AlertIcon();
var contoh:WindowAlert= new WindowAlert(df,text,width,height,position,i,pW,pH);
}
}
}
//WindowAlert.as
package com.PustakaFlash
{
import flash.display.*;
import flash.text.*;
import flash.events.*;
import flash.geom.Matrix;
import flash.geom.Point;
import flash.filters.*;
/*
**####################################
** @author Ricko www.pustakaflash.com
**####################################
*/
public class WindowAlert
{
private var tg:int;
private var tf:TextField;
private var h:TextField;
private var m:Sprite;
private var bi:Sprite;
private var button:Sprite;
private var i;
private var df;
private var n:Boolean;
private var bl;
private var sd;
private var gl;
private var lb:TextField;
public function WindowAlert(defaultContainer,text:String,width:int,height:int,position:Point,_i,parentWidth:int,parentHeight:int)
{
// constructor code
bl = new BlurFilter();
sd = new DropShadowFilter();
sd.distance = 10;
sd.color = 0x000000;
sd.blurX = 10;
sd.blurY = 10;
sd.quality = 3;
gl = new GlowFilter();
gl.color = 0xFFFF00;
trace(parentWidth);
i = _i;
df = defaultContainer;
trace(position);
tg = height;
tf = new TextField ;
h = new TextField ;
lb = new TextField ;
tf.autoSize = TextFieldAutoSize.LEFT;
tf.multiline=true;
tf.wordWrap = true;
tf.width=width-i.width-50;
h.htmlText = "<FONT COLOR='#ffffff'><b>Alert...!!</b></FONT>";
lb.htmlText = "<FONT COLOR='#ffffff'><b>OK</b></FONT>";
h.x = 15;
h.y = 15;
_i.x = h.x;
_i.y = h.y + 25;
tf.htmlText = "<P ALIGN='justify'><FONT COLOR='#ffffff'><b>Pesan : </b><i>" + text+'</i></FONT></P>';
tf.x = _i.x + _i.width+20;
tf.y = 50;
var a:Array = [0.8,0.3];
var b:Array = [136,255];
var c:Array = [0x0033cc,0xffffff];
var d:* = new Matrix ;
new Matrix ().createGradientBox(100,150,150,50,50);
bi = new Sprite();
m = new Sprite();
bi.graphics.lineStyle(1, 0xFF0000, 1);
bi.graphics.beginFill(0x000000,1);
bi.graphics.drawRect(0-parentWidth, 0-parentHeight, 4*parentWidth, 4*parentHeight);
bi.graphics.endFill();
bi.alpha=.7;
bl.quality = 3;
bl.blurX = 10;
bl.blurY = 10;
bi.filters = [bl];
m.graphics.clear();
m.graphics.beginGradientFill(GradientType.LINEAR,c,a,b,d);
m.graphics.drawRoundRect(0,0,width,tg,25,25);
m.graphics.endFill();
m.graphics.lineStyle(5,0x000000,100);
m.graphics.drawRoundRect(0,0,width,tg,25,25);
m.graphics.lineStyle(2,0xFFFFFF,100);
m.graphics.moveTo(5,h.y + 20);
m.graphics.lineTo(295,h.y + 20);
m.graphics.moveTo(5,h.y + 25);
m.graphics.lineTo(295,h.y + 25);
m.x = position.x;
m.y = position.y;
m.filters = [sd];
button = new Sprite;
button.graphics.lineStyle(1,0xFFFFFFF,1);
button.graphics.beginFill(0x000000,1);
button.graphics.drawRoundRect(((width - 50) / 2),tg - 50,50,20,5,5);
button.graphics.endFill();
lb.x=((width - 50) / 2)+10;
lb.y=tg - 50;
button.buttonMode = true;
button.mouseChildren=false;
n=true;
tampil();
}
private function tampil()
{
df.addChild(bi);
df.addChild(m);
m.addChild(h);
m.addChild(tf);
m.addChild(i);
m.addChild(button);
button.addChild(lb);
i.filter=[sd];
button.addEventListener(MouseEvent.CLICK,hilang);
button.addEventListener(MouseEvent.MOUSE_OVER,dekati);
button.addEventListener(MouseEvent.MOUSE_OUT,jauhi);
}
private function dekati(event:MouseEvent=null)
{
button.filters = [gl];
}
private function jauhi(event:MouseEvent=null)
{
button.filters = undefined;
}
private function hilang(event:MouseEvent=null):void
{
df.removeChild(bi);
df.removeChild(m);
}
}
}
/**class ini bersifat opensource tidak untuk diperjual belikan,
*walaupun demikian kami menghargai jika anda menghargai sumbernya
*------------Ricko Nada www.pustakaflash.com----------------------*
//Main.as
package
{
import flash.display.MovieClip;
import com.PustakaFlash.mouseku;
import flash.events.MouseEvent;
import flash.events.Event;
public class Main extends MovieClip
{
public var custumMouse;
public function Main():void
{
if (stage)
{
init();
}
else
{
addEventListener(Event.ADDED_TO_STAGE, init);
}
}
public function init(e:Event = null):void
{
custumMouse = new mouseku(stage,false);
mcn.addEventListener(MouseEvent.MOUSE_DOWN, tekan);
mcn.addEventListener(MouseEvent.MOUSE_UP, angkat);
}
public function tekan(event:MouseEvent):void
{
trace("Mouse clicked");
custumMouse.down();
}
public function angkat(event:MouseEvent):void
{
trace("angkat");
}
}
}
//timelineScript or primitive script
import com.PustakaFlash.mouseku;
var custumMouse:mouseku=new mouseku(stage,false);
mcn.addEventListener(MouseEvent.MOUSE_DOWN, tekan);
function tekan(event:MouseEvent):void
{
trace("Mouse clicked");
custumMouse.down();
}
mcn.addEventListener(MouseEvent.MOUSE_UP, angkat);
function angkat(event:MouseEvent):void
{
trace("angkat");
}
*/
package com.PustakaFlash
{
import flash.display.*;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.ui.Mouse;
import flash.filters.*;
/*
**####################################
** @author Ricko www.pustakaflash.com
**####################################
*/
public class mouseku extends MovieClip
{
private var c;
private var s:Stage;
private var d:Boolean;
private var b;
private var e;
private var sd;
public function mouseku(t:Stage,v= null)
{
// constructor code
c= new mouse();
sd = new DropShadowFilter()
d = v;
s = t;
tb();
h();
t.addChild(c);
c.mouseEnabled = false;
}
private function tb()
{
s.addEventListener(MouseEvent.MOUSE_DOWN, down);
s.addEventListener(MouseEvent.MOUSE_UP, up);
c.addEventListener(Event.ENTER_FRAME, cursor);
}
private function cursor(event:Event)
{
c.x = s.mouseX + 2;
c.y = s.mouseY;
sd.distance = 5;
sd.color = 0x000000;
sd.blurX = 5;
sd.blurY = 5;
sd.quality = 3;
c.filters = [sd];
}
private function h()
{
trace(d);
if (! d)
{
Mouse.hide();
d = false;
}
}
private function get show()
{
Mouse.show();
}
public function down(event:MouseEvent=null):void
{
c.gotoAndStop(3);
}
private function up(event:MouseEvent=null):void
{
//trace("up");
c.gotoAndStop(1);
}
}
}
var xmlLoader:URLLoader = new URLLoader();
xmlLoader.load(new URLRequest("faq.xml"));
xmlLoader.addEventListener(Event.COMPLETE, onXMLLoad, false, 0, true);
function onXMLLoad(event:Event):void
{
var newsXML:XML = new XML(event.target.data);
var n:int = newsXML.item.length();
for (var i:int = 0; i < n; i++)
{
var tile:Tile = new Tile();
tile.headerTxt.htmlText = newsXML.item[i].name.text();
//get content from <txt> tags. Then add data from <linkurl> and <linkname>
tile.infoTxt.htmlText = newsXML.item[i].txt.text()+" <font color='#FFFFFF'> <a href='"+newsXML.item[i].linkurl.text()+"'>"+newsXML.item[i].linkname.text()+"</a></font>";
tile.infoTxt.multiline = true;
tile.infoTxt.autoSize = TextFieldAutoSize.LEFT;
tile.infoTxt.width = 610;
tile.y = scrlContainer.height;
trace("tile " + i + " y position: " + tile.y);
trace("tile " + i + " height property = " + tile.height);
trace("");
scrlContainer.addChild(tile);
}
}