Ahh. Hab ich da was mit Array's gelesen

Hab mir gedacht ich mach sowas mal mit einer Klasse, also die Button-Status Geschichte.
Des Ding erkennt ob des ein Zwei-Frame oder Drei-Frame-Button ist!
Legt Container an, wenn es welche braucht und kann auch Html-Links.
Zusätzlich hab ich noch die Tweener-Klasse von caurina reingepoppelt!
Klasse für Buttons:
PHP-Code:
import com.kenshodev.loaders.EasyLoadDynamicStaticV2;
class com.kenshodev.btnmodes.EasyButtonDynamicStaticV2 {
private static var _innerBtnArray:Array =[];
private static var _innerMasterArray:Array = [];
private static var _innerArrayStartNummer:Number = null;
private static var _innerTimeLine:MovieClip = null;
private static var _innerContainer:Array = [];
private static var _oldMemMovie:MovieClip = null;
public function EasyButtonDynamicStaticV2() {
//EasyButtonDynamicStaticV2 ist eine statische Klasse, diese muß nicht instanziert werden.
}
public static function addBtn(masterArray:Array, arrayStartNummer:Number, timeLine:MovieClip):Void {
_innerMasterArray = masterArray;
_innerArrayStartNummer = arrayStartNummer;
_innerTimeLine = timeLine;
_oldMemMovie = _innerMasterArray[_innerArrayStartNummer][2];
function startAdding(){
for( var i:Number =0; i<_innerMasterArray.length; i++){
_innerBtnArray.push(_innerMasterArray[i][0]);
if(_innerMasterArray[i][1] == "dynamic"){
_innerTimeLine.createEmptyMovieClip("containerMc"+i, _innerTimeLine.getNextHighestDepth());
_innerTimeLine["containerMc"+i]._x=_innerMasterArray[i][3][0];
_innerTimeLine["containerMc"+i]._y=_innerMasterArray[i][3][1];
_innerTimeLine["containerMc"+i]._alpha=0;
_innerContainer[i] =_innerTimeLine["containerMc"+i];
}
if(_innerMasterArray[i][1] == "static"){
_innerMasterArray[i][2]._alpha = 0;
}
}
makeButton();
}
function makeButton(){
for (var j:Number = 0; j<_innerMasterArray.length; j++) {
_innerMasterArray[j][0].ID = j;
_innerMasterArray[j][0].dynamic_static_html = _innerMasterArray[j][1];
if(_innerMasterArray[j][0]._totalframes >2){
_innerMasterArray[j][0].clickStatus = false;
}
_innerMasterArray[j][0].onPress = function() {
if (this.clickStatus == false) {
this.clickStatus = true;
this.gotoAndStop(3);
}
};
_innerMasterArray[j][0].onRelease = _innerMasterArray[j][0].onReleaseOutside = function() {
if (this.dynamic_static_html == "static") {
EasyLoadDynamicStaticV2.addTween(_innerMasterArray[this.ID][2],_innerMasterArray[this.ID][0],_innerBtnArray);
}
if (this.dynamic_static_html == "dynamic") {
EasyLoadDynamicStaticV2.addLoaderTween(_innerContainer[this.ID],_innerMasterArray[this.ID][2],_innerMasterArray[this.ID][0],_innerBtnArray);
}
if (this.dynamic_static_html == "html") {
getURL(_innerMasterArray[this.ID][2], "_blank");
}
}
_innerMasterArray[j][0].onRollOver = function() {
this.gotoAndStop(2);
};
_innerMasterArray[j][0].onRollOut = function() {
if (this.clickStatus == true) {
this.gotoAndStop(3);
} else {
this.gotoAndStop(1);
}
};
}
if (_innerMasterArray[_innerArrayStartNummer][0].clickStatus ==false) {
_innerMasterArray[_innerArrayStartNummer][0].clickStatus = true;
_innerMasterArray[_innerArrayStartNummer][0].gotoAndStop(3);
}
if (_innerMasterArray[_innerArrayStartNummer][1]== "static") {
EasyLoadDynamicStaticV2.addTween(_innerMasterArray[_innerArrayStartNummer][2],_innerMasterArray[this.ID][0],_innerBtnArray);
}
if (_innerMasterArray[_innerArrayStartNummer][1]== "dynamic") {
trace(_innerMasterArray[_innerArrayStartNummer][0])
EasyLoadDynamicStaticV2.addLoaderTween(_innerContainer[_innerArrayStartNummer],_innerMasterArray[_innerArrayStartNummer][2],_innerMasterArray[_innerArrayStartNummer][0],_innerBtnArray);
}
if (_innerMasterArray[_innerArrayStartNummer][1] == "html") {
getURL(_innerMasterArray[this.ID][2], "_blank");
}
}
startAdding();
}
}
Klasse zum Tweenen und Buttons an-aus schalten:
PHP-Code:
import com.caurina.transitions.*;//Download_Link http://code.google.com/p/tweener/
class com.kenshodev.loaders.EasyLoadDynamicStaticV2 {
private static var _innerLadeZiel:MovieClip = null;
private static var _innerLadeContent:String = "";
private static var _innerclicktBtn:MovieClip;
private static var _innerBtn:Array = [];
private static var _innerOldMc:MovieClip = null;
public function EasyLoadDynamicStaticV2(){
//EasyLoadDynamicStaticV2 ist eine statische Klasse, diese muß nicht instanziert werden.
}
public static function addLoaderTween (ladeZiel:MovieClip, ladeContent:String, clicktBtn:MovieClip,btnA:Array):Void {
_innerLadeZiel = ladeZiel;
_innerLadeContent = ladeContent;
_innerclicktBtn=clicktBtn;
_innerBtn = btnA;
clearInterval(interval.id);
var bild_mcl = new MovieClipLoader();
var ObjListener:Object = new Object();
bild_mcl.addListener(ObjListener);
bild_mcl.loadClip(_innerLadeContent,_innerLadeZiel);
var interval:Object = new Object();
interval.id = setInterval(checkProgress, 30, bild_mcl, _innerLadeZiel, interval);
function checkProgress(mcLoader:MovieClipLoader, image:MovieClip, interval:Object):Void {
var progress:Object = mcLoader.getProgress(image);
if (progress.bytesLoaded == progress.bytesTotal) {
clearInterval(interval.id);
Tweener.addTween(_innerLadeZiel, {_alpha:100,time:1.5,transition:"easeInOutQuart", onComplete:function () {_innerOldMc = _innerLadeZiel; mouseALT(true);}});
Tweener.addTween(_innerOldMc, {_alpha:0,time:1.5,transition:"easeInOutQuart"})
}
}
function mouseALT(bol:Boolean):Void{
for(var i:Number = 0; i<_innerBtn.length; i++){
_innerBtn[i].enabled = bol;
}
_innerclicktBtn.enabled = false;
}
mouseALT(false);
}
public static function addTween (Ziel:MovieClip, clicktBtn:MovieClip,btnA:Array):Void {
_innerLadeZiel = Ziel;
_innerclicktBtn=clicktBtn;
_innerBtn = btnA;
Tweener.addTween(_innerLadeZiel, {_alpha:100,time:1.5,transition:"easeInOutQuart", onComplete:function () {_innerOldMc = _innerLadeZiel;mouseT(true);}});
Tweener.addTween(_innerOldMc, {_alpha:0,time:1.5,transition:"easeInOutQuart"})
function mouseT(bol:Boolean):Void{
for(var i:Number = 0; i<_innerBtn.length; i++){
_innerBtn[i].enabled = bol;
}
_innerclicktBtn.enabled = false;
}
mouseT(false);
}
}
Die Flash-Datei noch, die ist so angelagt das man auch attach und duplicate anwenden kann:
PHP-Code:
import com.kenshodev.btnmodes.EasyButtonDynamicStaticV2;
var timeline:MovieClip = this;
var btnNameArray:Array = ["static_1", "dynamic_1", "static_2", "html_1"];
var masterArray:Array = [[null, "static", timeline.mc1], [null, "dynamic", "movieclips/mc2.swf", [75, 25]], [null, "static", timeline.mc3], [null, "html", "http://www.google.de"]];
function initBtn (bNA:Array, mA:Array)
{
for (var i:Number = 0; i < bNA.length; i++)
{
mA[i][0] = timeline[bNA[i]];
}
EasyButtonDynamicStaticV2.addBtn (masterArray,1, timeline);
}
initBtn (btnNameArray,masterArray);
//EasyButtonDynamicStaticV2.addBtn (masterArray,1 == das startArray'[null, "dynamic", "movieclips/mc2.swf", [75, 25]]', timeline);
Vui Spaß!
Ach ja das des AS2 ist muß ich ja eigentlich nicht sagen.
Wenn jemand verbesserungen hat, immer gerne!