Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-01-2005, 03:48   #1 (permalink)
Blitzuser
 
Registriert seit: Feb 2004
Beiträge: 468
:( nwarum geht dieser array as nicht?

Warum geht das hier nicht?

HTML-Code:
	box.box_in.zielheight = btshArray[this.i];
der array is defined, und voll mit daten..
aber eben mit trace bekomme ich undefined...


thx
nxfxcom ist offline   Mit Zitat antworten
Alt 26-01-2005, 04:11   #2 (permalink)
Blitzuser
 
Registriert seit: Feb 2004
Beiträge: 468
Hier nochmal mein ganzer AS:

Code:
_root.box.home_mc.onLoad = function() {
	//this._width += (zielwidth-this._width)/5;
	//this._height += (zielheight-this._height)/5;
	this._alpha = "0";
	this._visible = false;
}
_root.box.home_mc.onEnterFrame = function() {
this._alpha += (ziela-this._alpha)/2;
home_mc_c = Math.round(_root.box.box_in._height);
if (home_mc_c == 148) {
ziela = "100";
	this._visible = true;
}else{
ziela = "0";
	this._visible = false;
}
}


//NAV & LINE_IN_BUTTON_SIZE & FLASH
var btsnArray = ["bts1", "bts2", "bts3", "bts4", "bts5", "bts6", "bts7"];
var btslArray = ["ABOUT", "NEWS", "SERVICES", "PRODUCTS", "SHOW CASE", "JOBS", "CONTACT"];
var btshArray = ["500", "200", "600", "800", "100", "250", "350"];
var btswArray = ["500", "200", "600", "800", "100", "250", "350"];
for (i=0; i<btsnArray.length; i++) {
	box.home_mc[btsnArray[i]].i = i;
	box.home_mc[btsnArray[i]].onLoad = function() {
	this.label = btslArray[this.i];
	};
	//LINE SIZE
	box.home_mc[btsnArray[i]].line_in_button.onEnterFrame = function() {
	this._width=_root.box.box_in._width;
	};
	//FLASH SIZE
	box.home_mc[btsnArray[i]].flash.onEnterFrame = function() {
	this._width=_root.box.box_in._width;
	};
	//FLASH SIZE
	box.home_mc[btsnArray[i]].flash.onRollOver = function() {
	this.gotoAndPlay("2");
	};
	box.home_mc[btsnArray[i]].flash.onRollOut = function() {
	this.gotoAndPlay("11");
	};
	box.home_mc[btsnArray[i]].flash.onPress = function() {
	_root.box.box_in.zielwidth = 500;

//das geht nicht!!!!!!!!!!!
	box.box_in.zielheight = btshArray[this.i];
		_root.box.box_in.zielwidth = btswArray[i];
	};
}

//BOX_IN MOVEMENT
_root.box.box_in.onLoad = function() {
	this._width = 170;
	this._height = 1;
	this.zielwidth = "170";
	this.zielheight = "148";
}
//MASK MOVEMENT
//BOX_IN MOVEMENT

_root.box.box_in.onEnterFrame = function() {
	this._width += (_root.box.box_in.zielwidth-this._width)/5;
	this._height += (_root.box.box_in.zielheight-this._height)/5;

}

//BOX_SHADOW MOVEMENT
_root.box.box_shadow.onEnterFrame = function() { 
this._width=_root.box.box_in._width+18; 
this._height=_root.box.box_in._height+15; 
this._x=_root.box.box_in._x; 
this._y=_root.box.box_in._y;
} 

//BOX_OUT MOVEMENT
_root.box.box_out.onEnterFrame = function() { 
this._width=_root.box.box_in._width+10; 
this._height=_root.box.box_in._height+10; 
this._x=_root.box.box_in._x; 
this._y=_root.box.box_in._y;
} 
  _root.box.mask.onEnterFrame = function() {
this._x=_root.box.box_in._x; 
this._y=_root.box.box_in._y;
this._width=_root.box.box_in._width; 
this._height=_root.box.box_in._height;
}

//BOX IN COLOR SETTINGS
_root.box.box_in.farbfeld = new Color(_root.box.box_in);
setColor = new Object();
setColor.ra = 100;
setColor.rb = 153;
// hier
setColor.ga = 100;
setColor.gb = 0;
// hier
setColor.ba = 100;
setColor.bb = 0;
// und hier gewŸnschte ausgangsfarbe setzten
setColor.aa = 100;
setColor.ab = 0;
_root.box.box_in.farbfeld.setTransform(setColor);
// -------------
Color.prototype.farbWechsel = function() {
	var change = false;
	var currentC = this.getTransform();
	var farbe = new Array("r", "g", "b");
	for (step=0; step<=3; step++) {
		if (this[farbe[step]]<currentC[farbe[step]+"b"]-this.speed) {
			currentC[farbe[step]+"b"] -= this.speed;
			change = true;
		} else if (this[farbe[step]]>currentC[farbe[step]+"b"]+this.speed) {
			currentC[farbe[step]+"b"] += this.speed;
			change = true;
		} else {
			currentC[farbe[step]+"b"] = this[farbe[step]];
		}
	}
	this.setTransform(currentC);
	return change;
};
nxfxcom ist offline   Mit Zitat antworten
Alt 26-01-2005, 06:44   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 644
Schreib doch mal nur [i] anstatt [this.i].

Gruß Danny
jonny-noob ist offline   Mit Zitat antworten
Alt 26-01-2005, 06:55   #4 (permalink)
Blitzuser
 
Registriert seit: Feb 2004
Beiträge: 468
auch schon versucht : kein erfolg....
nxfxcom ist offline   Mit Zitat antworten
Alt 26-01-2005, 09:13   #5 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
punkt1: werde dir mal darüber im kalren ob du nun zahlen in strings packst oder nicht.

ein x="500"-"300"
wird noch gut gehen da flash eine automatische typenkonvertierung ausführt, da hier nur eine vernünftige möglichkeit bleibt.
sobald du aber addierst
x="500"+"300" haste du ein problem dann wird die mathematik auf den kopf gestellt
(erg.: "500300")

also zahlen soltlen auch zahlen sein-und keine literale

punkt2, die fehlersuche
bisher nur blind herumprobiert?
verstehst du deinen eigenen code eigentlich? nur ein [i] würde hier doch absolut keinen sinn machen was soll er denn machen ne variable mit namen 1..2 usw suchen?

also wie gehabt du greifst auf das array zu, welches mit deinen höhen und breiten gefüllt ist.

greifst du auch wirklich darauf zu?
also an der stelle der zuweisung folg.: hinzufügen:
ActionScript:
  1. btshArray[this.i];
was wird ausgegeben? die zahlen? wudnerbar also weiter.

nahcder zuweisung sollten die werte dort sein wo sie zugewiesen wurden- sind sie das?
ActionScript:
  1. //nach der zuweisung
  2. trace(_root.box.box_in.zielwidth)

wird die selbe zahl ausgegeben?
usw..

weitre sache die zu beachten sind

wird der onlOad auch wirklich aufgerufen trace("er wird") gibt dir auskunft
funktionieren die onEnterFrame events?

im enterFrame von _root.box.box_in auf zielwidth per
_root.box.box_in.zielwidth zuzugreifen ist unsinn.
du befidnest dich doch schon innerhalb des betreffenden mcs, auf ihn verweiste mit this.
this.zielwidth

kommen hier die werte an?
trace(this.zielwidth) gibt auskunft


viel erfolg
deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 26-01-2005, 14:31   #6 (permalink)
Blitzuser
 
Registriert seit: Feb 2004
Beiträge: 468
DANKE DELUXE,

ein paar gute Tips, habe einige deiner modifications gemacht, habe seit 3 stunden durch ein array book gelesen, aber keine moeglichkeit gefunden.
We ich angebe btshArray[1] geht es super...
Aber alles andere geht nicht..

hier ist mein neuer code:
PHP-Code:
_root.box.home_mc.onLoad = function() {
    
//this._width += (zielwidth-this._width)/5;
    //this._height += (zielheight-this._height)/5;
    
this._alpha "0";
    
this._visible false;
}
_root.box.home_mc.onEnterFrame = function() {
this._alpha += (ziela-this._alpha)/2;
home_mc_c Math.round(_root.box.box_in._height);
if (
home_mc_c == 148) {
ziela "100";
    
this._visible true;
}else{
ziela "0";
    
this._visible false;
}
}

//NAV & LINE_IN_BUTTON_SIZE & FLASH
var btsnArray = ["bts1""bts2""bts3""bts4""bts5""bts6""bts7"];
var 
btslArray = ["ABOUT""NEWS""SERVICES""PRODUCTS""SHOW CASE""JOBS""CONTACT"];
var 
btshArray = [500200600800100250350];
var 
btswArray = [1800800600800100250350];
for (var 
i=0i<btswArray.lengthi++) {
    
box.home_mc[btsnArray[i]].i;
    
box.home_mc[btsnArray[i]].onLoad = function() {
    
this.label btslArray[this.i];
    };
    
_root.box.home_mc[btsnArray[i]].flash.onPress = function() {
    
box.box_in.zielwidth btswArray[this.i]; 
    
box.box_in.zielheight btshArray[this.i]; 
    
trace(_root.box.home_mc.btswArray[i]);
    };
    
//LINE SIZE
    
box.home_mc[btsnArray[i]].line_in_button.onEnterFrame = function() {
    
this._width=_root.box.box_in._width;
    };
    
//FLASH SIZE
    
box.home_mc[btsnArray[i]].flash.onEnterFrame = function() {
    
this._width=_root.box.box_in._width;

    };
    
//FLASH SIZE
    
box.home_mc[btsnArray[i]].flash.onRollOver = function() {
    
this.gotoAndPlay(2);

    };
    
box.home_mc[btsnArray[i]].flash.onRollOut = function() {
    
this.gotoAndPlay(11);
    };

}

//BOX_IN MOVEMENT
_root.box.box_in.onLoad = function() {
    
this._width 170;
    
this._height 1;
    
this.zielwidth "170";
    
this.zielheight "148";
}
//MASK MOVEMENT
//BOX_IN MOVEMENT

_root.box.box_in.onEnterFrame = function() {
    
this._width += (this.zielwidth-this._width)/5;
    
this._height += (this.zielheight-this._height)/5;
    
trace(this.zielwidth);

}

//BOX_SHADOW MOVEMENT
_root.box.box_shadow.onEnterFrame = function() { 
this._width=_root.box.box_in._width+18
this._height=_root.box.box_in._height+15
this._x=_root.box.box_in._x
this._y=_root.box.box_in._y;


//BOX_OUT MOVEMENT
_root.box.box_out.onEnterFrame = function() { 
this._width=_root.box.box_in._width+10
this._height=_root.box.box_in._height+10
this._x=_root.box.box_in._x
this._y=_root.box.box_in._y;

  
_root.box.mask.onEnterFrame = function() {
this._x=_root.box.box_in._x
this._y=_root.box.box_in._y;
this._width=_root.box.box_in._width
this._height=_root.box.box_in._height;
}

//BOX IN COLOR SETTINGS
_root.box.box_in.farbfeld = new Color(_root.box.box_in);
setColor = new Object();
setColor.ra 100;
setColor.rb 153;
// hier
setColor.ga 100;
setColor.gb 0;
// hier
setColor.ba 100;
setColor.bb 0;
// und hier gewŸnschte ausgangsfarbe setzten
setColor.aa 100;
setColor.ab 0;
_root.box.box_in.farbfeld.setTransform(setColor);
// -------------
Color.prototype.farbWechsel = function() {
    var 
change false;
    var 
currentC this.getTransform();
    var 
farbe = new Array("r""g""b");
    for (
step=0step<=3step++) {
        if (
this[farbe[step]]<currentC[farbe[step]+"b"]-this.speed) {
            
currentC[farbe[step]+"b"] -= this.speed;
            
change true;
        } else if (
this[farbe[step]]>currentC[farbe[step]+"b"]+this.speed) {
            
currentC[farbe[step]+"b"] += this.speed;
            
change true;
        } else {
            
currentC[farbe[step]+"b"] = this[farbe[step]];
        }
    }
    
this.setTransform(currentC);
    return 
change;
}; 
Es macht mich wahnsinnig, bin kurz davor alles hard zu coden, also per hand einzutragen.
Ueberall klappt das mit dem Array eben sogar Label...

THX
Angehängte Dateien
Dateityp: zip HOME.fla.zip (13,4 KB, 1x aufgerufen)
nxfxcom ist offline   Mit Zitat antworten
Alt 26-01-2005, 14:46   #7 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
habe es nur kurz überflogen aber i ist ja während der laufzeit von press
nicht definiert. soll wohl so heißen.
btswArray[this.i])

PS: habe gerade noch den beitrag von Deluxe gelesen. dort stet es ja auch schon drinn
__________________
gruß Harry

Geändert von HAY (26-01-2005 um 14:52 Uhr)
HAY ist offline   Mit Zitat antworten
Alt 26-01-2005, 14:51   #8 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
also ohne dein "das geht nicht" mit viel abstand zum onPress event des buttons wäre die sache schneller gegangen *g

folgendes
i mußt du im button ablegen
_root.box.home_mc[btsnArray[i]].flash.i=i
und innerhalb des buttons per this.i darauf zugreifen

deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 26-01-2005, 16:10   #9 (permalink)
Blitzuser
 
Registriert seit: Feb 2004
Beiträge: 468
Wahnsinn danke,

habe so lange tutorials angesehen etc..
aber das klappt?
und ichg verstehe sogar warum....

VIELEN DANK
nxfxcom ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 22:58 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele