Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27-02-2007, 21:23   #1 (permalink)
Neuer User
 
Benutzerbild von Grille
 
Registriert seit: Oct 2001
Beiträge: 156
Array, Werte eintragen, Werte löschen

Hallo ...

ich habe auf der Bühne eine Vielzahl von MCs, die wie Knöpfe funktionieren und die man "EIN" und "AUS" schalten kann. Jeder dieser MCs hat seinen eigenen namen.

auf der Bühne soll es nun ein Textfeld geben, welches alle MC-NAMEN anzeigt, von denen die eingeschaltet sind. Wenn man sie wieder ausschaltet, soll der name wieder verschwinden.

so wollte ich in ein Array den namen des MCs einschreiben, wenn er "aktiv" ist:
PHP-Code:
if (this.hitTest(_root.selectfeld) == true) {
    
/* wenn aktiv, trage im array "auswahl" an erster Stelle die Variable name ein */
    
_root.auswahl.splice(1name);

und so wollte ich den namen wieder entfernen:
PHP-Code:
if (this.hitTest(_root.selectfeld) == false) {
    
/* wenn nicht-aktiv, suche im array "auswahl" nach "name"*/
    
for (var 0i<_root.auswahl.lengthi++) {
        
/* wenn "name" in "auswahl" gefunden, lösch "name" aus dem array */
        
if (name == _root.auswahl[i]) {
        
_root.auswahl.splice(i1);
        }
    }

Leider funktioniert es nicht,
weis jemand wie es richtig gemacht wird?
vielen Dank.
Grille ist offline   Mit Zitat antworten
Alt 27-02-2007, 22:00   #2 (permalink)
liebt Skorpionin
 
Benutzerbild von Skorpion
 
Registriert seit: Apr 2003
Beiträge: 1.258
hi Grille

Vorneweg: warum du hitTest benutzt um den Aktivität-Status zu ermitteln ist mir ein Rätsel.

Aber nun zum Thema: normalerweise benutzt man push, um ein Array zu füttern. Wenn es denn unbedingt splice sein muss, dann so:

PHP-Code:
_root.auswahl.splice(10name); 
RTFM kann man da nur sagen...

Den Rest von deinem Code habe ich vorerst mal nicht beachtet.

Gruss - Skorpion
Skorpion ist offline   Mit Zitat antworten
Alt 28-02-2007, 14:17   #3 (permalink)
Neuer User
 
Benutzerbild von Grille
 
Registriert seit: Oct 2001
Beiträge: 156
**** DATEIEN SIND HIER: 150kb groß, daher externer Link ****

Hallo Skorpion ...

zu deiner Vorweg-frage/aussage:

Mit dublicateMC habe ich ein Raster gemacht; mit Spalten und Zeilen; aus über tausend 10x10 Pixel Quadraten. Die Spalten haben die Namen "A", "B", "C", usw. .. die Zeilen haben Nummern "1", "2", "3" ...
Jeder 10x10 Pixel hat daher einen Namen wie "G12" (Spalte G Zeile 12).

Nun soll eines oder mehrere dieser Quadrate auswählbar sein, doch immer nur so, dass es ein Viereck ist; also keine L-Form (A1;A2;B2) oder O-Form (A1;A2;A3;B3;C3;C2;C1;B1[in der Mitte B2 ist nich ausgewählt]).

Man müste also sagen:
1) klick die obere linke Ecke an; (A1)
2) klick die untere rechte Ecke an; (C3)
3) selektiere alle dazwichenliegenden Quadrate (A2;A3;B1;B2;B3;C1;C2)

Ich weis leider nicht wie man das rechnerisch machen kann, darum habe ich ein weiteres unsichtbares Quadrat gebaut, welches mit der Maus positioniert und in der Größe verändert wird. Daher wird immer geprüft, ob das Selektier-Quadrat eines der Pixel berühert oder nicht.

****
Wenn eines der Quadrate berühert wird, dann ist es aktiv und soll die Variable "name" in ein Array "_root.auswahl" schreiben

**** DATEIEN SIND HIER: 150kb groß, daher externer Link ****

Was bedeutet RTFM ?
Gruß Grille ...

Geändert von Grille (28-02-2007 um 14:19 Uhr)
Grille ist offline   Mit Zitat antworten
Alt 28-02-2007, 17:03   #4 (permalink)
liebt Skorpionin
 
Benutzerbild von Skorpion
 
Registriert seit: Apr 2003
Beiträge: 1.258
hi Grille


Erstens:

Wenn du auswahl als Array behandelst, musst du es auch so deklarieren:
PHP-Code:
/* Array für die ausgewählten Pixel */
var auswahl:Array =  new Array(); 

Zweitens:

Bennene dein Textfeld wpausgabe, ohne Bindestrich!
Ins Textfeld schreiben dann so:
PHP-Code:
_root.wpausgabe.text _root.auswahl

Drittens:

Wenn der Hintergrund weiss ist, und dein Textfeld schreibt in weiss, dann kannst du bis zur nächsten Sintflut warten bis sich da mal was zeigt....


Viertens:

Ich weiss nicht wie deine konkreten Flash-Pläne aussehen, aber ich bezweifle stark, dass dein Lösungsansatz der optimale Weg ist (Performance!).


Fünftens:

Trotzdem viel Glück.


Sextens:

Was RTFM bedeutet sagt dir Onkel Google.


Gruss - Skorpion
Skorpion 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 12:39 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele