Zurück   Flashforum > Flash > ActionScript > ActionScript 2

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-10-2011, 20:33   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 111
Question kurzer Anstoß: x != a,b,c ????

Hi, ich müh mich schon zu lange auf google ab:

Wie schreibe ich in AS2 :

PHP-Code:
Wenn X ist nicht A und nicht B und nicht C 
?

PHP-Code:
if ( != a) { function() } 
funktioniert wunderbar. aber function() soll auch ausgeführt werden wenn x != b.
Positiv kann ich's nicht formulieren, weil x unendlich viele mir unbekannte werte annehmen kann.

brauch nur nen kurzen denkanstoß...
__________________
O Genie der Herr ehre dein Ego
Beezle-Bug ist offline   Mit Zitat antworten
Alt 13-10-2011, 20:36   #2 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
PHP-Code:
if ( != && != && != //... 
oder

PHP-Code:
if( [abc].indexOf(x) == -1//... 
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 13-10-2011, 21:27   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 111
Hi Martin,

danke für die schnelle Antwort. Leider schaff ich grad den Sprung vom Abstrakten zum konkreten nicht :-/

Daher Konkret:
Ich hab viele Buttons. zwei davon heißen z.B.: k_v und k_l
Werden sie gedrückt schreiben sie ihren Namen in die Variable
var letztes_kommando.

Ich bastle grad an einer Funktion die einen Fehlercounter (var mistakes) erhöht, wenn sie aufgerufen wird ohne dass das letzte kommando "k_v" ODER "k_l" war (oder k_z, oder k_r oder k....).

Die Mengenschreibweise scheint mir daher sehr sparsam und gut zu sein. leider versteh ich sie nicht :-(

Dein erster Vorschlag geht glaub ich nicht, weil nicht immer alle Buttons auf der Bühne sind. So kann es sein, dass letztes_kommando nicht "nicht k_v" sein werden kann. Eine Funktion die dies vorraussetzt scheidet also aus. Perfekt ist eine "weder noch" funktion.

Vielleicht kannst du mir das mit den eckigen klammern noch verständlicher darstellen. danke!!!

PHP-Code:
function up() {
if( [
"k_v""k_l"].indexOfletztes_kommando) == -1) { mistakes ++}
else {
mistakes 0}

__________________
O Genie der Herr ehre dein Ego
Beezle-Bug ist offline   Mit Zitat antworten
Alt 13-10-2011, 21:30   #4 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 111
PS: Vermutlich krieg ichs hin wenn ich das if/else einfach umdreh und sag

PHP-Code:
function up() {
if(
letztes_kommando == "k_v" || "k_l") {
mistakes 0;
}
else {
mistakes ++
}

trotzdem würd mich das mit den klammern interessieren wenn's dir nicht zu viel mühe bereitet.. und trotzdem funktioniert auch diese lösung hier noch nicht :-/
__________________
O Genie der Herr ehre dein Ego
Beezle-Bug ist offline   Mit Zitat antworten
Alt 13-10-2011, 21:46   #5 (permalink)
in the boondocks
 
Benutzerbild von shin10
 
Registriert seit: Feb 2006
Ort: Augsburg
Beiträge: 3.496
die eckigen klammern sind nur die kurzschreibweise für new array().
mit indexOf() schaut er dann nach, an welcher stelle x im array steht. das ergebnis -1 bedeutet, dass x gar nicht im array vorkommt, also alle annahmen falsch sind.

mfg

sx
__________________

flintfabrik.de
shin10 ist offline   Mit Zitat antworten
Alt 13-10-2011, 21:49   #6 (permalink)
+ Zimt & Zucker
 
Registriert seit: Mar 2006
Ort: hinterm Mond gleich links
Beiträge: 2.041
Zitat:
Zitat von Beezle-Bug Beitrag anzeigen

trotzdem würd mich das mit den klammern interessieren wenn's dir nicht zu viel mühe bereitet
Hat er schon erklärt.
In Martin's Signatur gibt es die As2 Referenz, dort findest du (praktisch) alles zur Sprache.

Flash Professional ActionScript 2.0

Grob gesagt sind alle Sonderzeichen Operatoren:
Flash Professional ActionScript 2.0

Dort kann man schauen was diese Klammern sind.


Ich habe das Gefühl du verstrickst dich bei dem Problem in der doppelten Verneinung.
__________________
anbei Grüße vom milchreis: Viva la [Silb]
"Selbst wenn uns nur noch der Zynismus treibt, wir werden trotzdem einfach immer weiter gehen!"

[Von null auf Flash in einem Klick.] <<< klick
milchreis ist offline   Mit Zitat antworten
Alt 13-10-2011, 21:50   #7 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 111
im prinzip klar. in der praxis bin ich mit arrays noch ungeübt.
müsste das dann so heißen?:
PHP-Code:

bad_commands 
newArray ["k_v""k_l"]

function 
up() { 
if(
indexOf(bad_commands) == -1) { mistakes ++} 
else {
mistakes 0

bzw geht das schlanker, mit der arraydefinition direkt im if-clause so wie es bei Martin den anschein hat?
__________________
O Genie der Herr ehre dein Ego
Beezle-Bug ist offline   Mit Zitat antworten
Alt 13-10-2011, 22:03   #8 (permalink)
+ Zimt & Zucker
 
Registriert seit: Mar 2006
Ort: hinterm Mond gleich links
Beiträge: 2.041
Arrow

Zitat:
Zitat von Beezle-Bug Beitrag anzeigen
im prinzip klar. in der praxis bin ich mit arrays noch ungeübt.
müsste das dann so heißen?:
PHP-Code:

bad_commands 
newArray ["k_v""k_l"]

function 
up() { 
if(
indexOf(bad_commands) == -1) { mistakes ++} 
else {
mistakes 0

bzw geht das schlanker, mit der arraydefinition direkt im if-clause so wie es bei Martin den anschein hat?
(Bei As3 hättest du übrigens für diesen Code eine Fehlermeldung bekommen, die dir geholfen hätte, das Problem selbst zu lösen.)

du musst die Methode auf dem Objekt ausführen.

Und wir sagten die Klammern ersetzen new Array, also verwende entweder die Klammern, oder new Array um das array zu erzeugen, aber nicht beides.


@Martin: gabs die As2 Referenz auch noch mal so, das man die Unterseiten verlinken konnte?
__________________
anbei Grüße vom milchreis: Viva la [Silb]
"Selbst wenn uns nur noch der Zynismus treibt, wir werden trotzdem einfach immer weiter gehen!"

[Von null auf Flash in einem Klick.] <<< klick
milchreis ist offline   Mit Zitat antworten
Alt 13-10-2011, 22:07   #9 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Kurze Anmerkung: in AS2 gab’s Array.indexOf() noch nicht.
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 13-10-2011, 22:24   #10 (permalink)
+ Zimt & Zucker
 
Registriert seit: Mar 2006
Ort: hinterm Mond gleich links
Beiträge: 2.041
Zitat:
Zitat von sonar Beitrag anzeigen
Kurze Anmerkung: in AS2 gab’s Array.indexOf() noch nicht.
Das ist doch doof, ich bin raus.

Spaß:
PHP-Code:
Array.prototype.indexOf = function (item):Number
{
    for (var 
i:Number 0ithis.length; ++i)
    {
        if(
this[i] == item) return i;
    }
    
    return -
1;

__________________
anbei Grüße vom milchreis: Viva la [Silb]
"Selbst wenn uns nur noch der Zynismus treibt, wir werden trotzdem einfach immer weiter gehen!"

[Von null auf Flash in einem Klick.] <<< klick
milchreis ist offline   Mit Zitat antworten
Alt 13-10-2011, 22:29   #11 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von sonar Beitrag anzeigen
Kurze Anmerkung: in AS2 gab’s Array.indexOf() noch nicht.
Ups Dann sollte man es erfinden
PHP-Code:
Array.prototype.indexOf = function(searchElement:*, fromIndex:Number):Number {
    if (!
fromIndexfromIndex 0;
    for (var 
i:Number fromIndexthis.lengthi++) {
        if (
this[i] == searchElement) return i;
    }
    return -
1;

Edit: Wurde von einem milchreis überholt und bin auch raus
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (13-10-2011 um 22:31 Uhr)
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 13-10-2011, 22:53   #12 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 111
hmm, ich zieh den hut und bin beeindruckt vor so viel paralleler professionalität. doch ich bin auch raus. i's und prototypes und arrays, das krieg ich mit meinen buttons nicht zusammen.
gute nachricht: über eine etwas umständlichere, lange && || reihe mit ganz vielen verschachtelten klammern hab ich zumindest die funktion dazu gekriegt das zu tun was sie tun soll.
die arrays muss ich wohl später verstehen. seid gegrüßet und einen schönen abend allerseits
ich nehm den hut und geh
__________________
O Genie der Herr ehre dein Ego
Beezle-Bug ist offline   Mit Zitat antworten
Alt 13-10-2011, 23:30   #13 (permalink)
+ Zimt & Zucker
 
Registriert seit: Mar 2006
Ort: hinterm Mond gleich links
Beiträge: 2.041
Zitat:
Zitat von Beezle-Bug Beitrag anzeigen
prototypes
Kannst du dir ausdrucken, den Code, neben den Bildschirm kleben und mit rotem dicken Stift drunter notieren: "Dinge die ich nie verwenden möchte"

Ist nicht zu empfehlen, war, wie drüber geschrieben, eher ein Spaß.

Zitat:
Zitat von Beezle-Bug Beitrag anzeigen
gute nachricht: über eine etwas umständlichere, lange && || reihe mit ganz vielen verschachtelten klammern hab ich zumindest die funktion dazu gekriegt das zu tun was sie tun soll.
Nö nö. Nicht das du uns irgendwann wieder ankommst und uns Fragen stellst, die wir nicht richtig beantworten können. Das müssen wir unbedingt vermeiden.

Hier mal eine ernsthaftere Überlegung:

Im Array befinden sich die Instanznamen, die ein Weiterzählen verhindern werden.

a, b, c sind entsprechend klickbare MCs.

PHP-Code:
var badButtons:Array = [ab]; 

var 
lastButton:MovieClip null;

var 
failCounter:Number 0;

function 
testFail ():Void
{
    for(var 
i:Number =0ibadButtons.length; ++i)
    {
        if (
badButtons[i] == lastButton) return;
    }
    
    
failCounter++;
}

a.onPress b.onPress c.onPress = function ():Void
{
    
lastButton this;
    
    
testFail();
    
trace("# " failCounter);

__________________
anbei Grüße vom milchreis: Viva la [Silb]
"Selbst wenn uns nur noch der Zynismus treibt, wir werden trotzdem einfach immer weiter gehen!"

[Von null auf Flash in einem Klick.] <<< klick
milchreis ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
ist nicht

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Flash 8] brauche denk anstoß - mp3 mit zusatzt features beto2010 Flash Einsteiger 5 01-03-2011 23:27
Ich brauche einen Anstoß von Euch... Katze ActionScript 1 3 20-02-2004 10:30
Keine Kritik nur Frage bzw. Anstoß Med2k Fragen, Konstruktive Kritik, Lob 8 19-07-2003 19:30


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:00 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele