PDA

Volledige versie bekijken : If statement met 2 statements.


dnaseba
%Europe/Berlin %835 %2007, 21:03
Hallo alemaal is het mogelijk om bij een if statement 2 statements te hebben, dus

if( A = C en B=D){
uitkomst
}

ik weet niet of dit kan maar" dont hurt to ask" :P

Dauntless
%Europe/Berlin %837 %2007, 21:06
if(a == b && b == d)
{

}

Maar dit is echt de BASIS van ActionScript (of eendert elke andere programmeertaal) en dit staat dan ook uitvoerig beschreven in de helpfiles.

Erwinzzz
%Europe/Berlin %837 %2007, 21:06
if(var1==var2 && var3== var4){
// trace("hallo daar");
}

Kijk anders hier (http://www.flashfocus.nl/forum/showthread.php?t=28504)even..

//Edit: Nu is het echt genoeg :P Ik kijk onderaan het topic, ik zie dat ik de enige ben die leest. Ik typ in normale snelheid een klein berichtje en 3 keer raden.. Inderdaad, DL was me weer voor :P

dnaseba
%Europe/Berlin %842 %2007, 21:13
Thx en ja kan zijn dat dit basis is maar men noch niet veel bezich geweest met If statements en zo :S :)

Emveedee
%Europe/Berlin %862 %2007, 21:41
Kijk hier eens als je moeite hebt met de basis:
http://www.flashfocus.nl/forum/showthread.php?t=6338#beginner

haas
%Europe/Berlin %605 %2007, 14:31
for (var i:Number = 1; i <=225; i++)
{
var tiles:MovieClip = this["tile_"+i];
//wanneer met klikt
tiles.onPress = function()
{
if (this._currentframe == "standard");
{
this.gotoAndStop("down");
}

else (this._currentframe == "down");
{
this.gotoAndStop("standard");
}
};
}

Ziet iemand het probleem bij deze if statement? In de help files geven ze aan dat het alleen else moet zijn maar dan ziet flash de if niet meer.

Jan
%Europe/Berlin %621 %2007, 14:54
Voor zover ik weet kan je niet op frame label checken (in AS2) en de _currentframe property geeft dus altijd een frame Number terug en nooit het label.

http://www.adobe.com/support/flash/action_scripts/actionscript_dictionary/actionscript_dictionary514.html
Usage
myMovieClip ._currentframe

Description
Property (read-only); returns the number of the frame in which the playhead is located in the Timeline specified by MovieClip .

Groeten,
Jan

mknol
%Europe/Berlin %642 %2007, 15:25
gebruik eens _currentlabel
[edit] lol, as3 .. bestaat niet in lagere versie [ /edit]

gebruik zoiets (gevonden op google):
// declare this function on frame#1
MovieClip.prototype.isAtLabel = function(label){
var iniFrame = this._currentframe;
this.gotoAndStop(label);
var returnVal = (this._currentframe == iniFrame);
this.gotoAndPlay(iniFrame);
return returnVal;
};

// movieclip instances blip, clip and flip
// clip has frame labels.
this.onEnterFrame = function(){
if (clip.isAtLabel("standard")){ ding_mc.play(); }
if (clip.isAtLabel("anders")){ ding_mc.play(); }
};

Jan
%Europe/Berlin %643 %2007, 15:27
gebruik eens _currentlabel
Voor zover ik weet kan je niet op frame label checken (in AS2)
Is _currentlabel niet enkel beschikbaar in AS3? (althans dat meende ik ooit ergens gelezen te hebben)

Edit: Ik had eigenlijk nog een simpelere oplossing in gedachte:
In het frame waar je nu je framelabel hebt staan zet je:
currentlabel="standaard";
En in je movie check je dan op:
onEnterFrame=function()
{
if(currentlabel=="standaard")
{
stop();
}
}
Voorbeeld:
http://users.telenet.be/jansurf/currentlabel/currentlabel.html
http://users.telenet.be/jansurf/currentlabel/currentlabel.fla

Jan

haas
%Europe/Berlin %664 %2007, 15:56
Beide dank voor de reactie, ik had het inmiddels gevonden en het had inderdaad te maken met dat ik niet kon verwijzen naar labels, nu kon ik dat eigenlijk wel maar bij de if statements gaf dat problemen. Alleen gaf ik eerst aan dat hij naar het derde frame moest en nu waren er maar twee maar toch deed hij het? Geen idee maar ok, nu zit er alleen nog een MC die ontzichtbaar is en die bij een hover zichtbaar moet worden, alleen dat werkt echt niet. Ik heb er een trace opgezet maar zelfs die laat niks van zich horen, goede ideeen hoor ik graag!

Huidige code:
stop();

var tiles:Array = new Array();
var activeItem:MovieClip;

for (var i=1;i<226;i++){
tiles[i] = this["tile_"+i];
tiles[i].nContainer=i;
tiles[i].tile_red._visible=false;
tiles[i].onPress = function(){
if(this._currentframe == 1){
this.gotoAndStop(2);
trace ("pushed");
} else {
this.gotoAndStop(1);
trace ("pushed again");
}

tiles[i].onRollOver = function(){
this.tile_red._visible=true;
trace ("hover on");
}
tiles[i].onRollOut = function(){
this.tile_red._visible=false;
trace ("hover off");
}
}
}

mknol
%Europe/Berlin %669 %2007, 16:04
Dat komt misschien omdat je in je onPress een nieuwe onRollOver/out meegeeft.

haas
%Europe/Berlin %674 %2007, 16:10
Inderdaad, dacht dat de volgorde niet uitmaakte maar heb ze nu ergens anders neergezet. En met deze code werkt het dus bedankt!

stop();

var tiles:Array = new Array();
var activeItem:MovieClip;

for (var i=1;i<226;i++){
tiles[i] = this["tile_"+i];
tiles[i].nContainer=i;
tiles[i].tile_red._visible=false;
tiles[i].onRollOver = function(){
this.tile_red._visible=true;
trace ("hover");
}
tiles[i].onRollOut = function(){
this.tile_red._visible=false;
trace ("hover uit");
}
tiles[i].onPress = function(){
if(this._currentframe == 1){
this.gotoAndStop(2);
trace ("pushed");
} else {
this.gotoAndStop(1);
trace ("pushed again");
}
}
}

mknol
%Europe/Berlin %678 %2007, 16:16
top! succes ermee.

Jan
%Europe/Berlin %680 %2007, 16:19
Dat komt misschien omdat je in je onPress een nieuwe onRollOver/out meegeeft.
Denk het ook... :)
Je had één accolade fout staan:
stop();
var tiles:Array = new Array();
var activeItem:MovieClip;
for (var i=1;i<226;i++)
{
tiles[i] = this["tile_"+i];
tiles[i].nContainer=i;
tiles[i].tile_red._visible=false;
/////////////////////////////////////
tiles[i].onPress = function()
{
if(this._currentframe == 1)
{
this.gotoAndStop(2);
trace ("pushed");
}
else
{
this.gotoAndStop(1);
trace ("pushed again");
}
}
/////////////////////////////////
tiles[i].onRollOver = function()
{
this.tile_red._visible=true;
trace ("hover on");
}
//////////////////////////////////
tiles[i].onRollOut = function()
{
this.tile_red._visible=false;
trace ("hover off");
}
}