Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-02-2009, 21:48   #1 (permalink)
Neuer User
 
Benutzerbild von HolgerP
 
Registriert seit: Jun 2002
Beiträge: 19
eval() in AS3

Folks,
baue seit langer Zeit mal wieder eine Seite in Flash. Habe ein einfaches Script mit einer Eval-Funktion. Bekomme es leider nicht in AS3 hin.
Habe versucht eval() so zu ersetzen:
Code:
parentObject[stringReferstoChildObject].property = value;
Haut irgendwie nicht hin.
File hängt dran.
Hat jemand eine Idee?
Code:
play();

// speichert den aktuell angeklickten button
inhalt_aktuell = 0;

// öffnet den neuen inhalt
function neuer_inhalt() {
	this["inhalt"+inhalt_aktuell].gotoAndPlay("in");
}

button1.onRelease = function() {
	if (inhalt_aktuell == 0) {
		// lässt den ersten inhalt reinfahren
		inhalt1.gotoAndPlay("in");
	} else {
		// lässt ggf. den aktuellen inhalt rausfahren
		var zielinhalt = eval("inhalt"+inhalt_aktuell);
		zielinhalt.gotoAndPlay("out");
	}
	// aktueller inhalt ist 1
	inhalt_aktuell = 1;
}

button2.onRelease = function() {
	if (inhalt_aktuell == 0) {
		// lässt den zweiten inhalt reinfahren
		inhalt2.gotoAndPlay("in");
	} else {
		// lässt ggf. den aktuellen inhalt rausfahren
		var zielinhalt = eval("inhalt"+inhalt_aktuell);
		
		zielinhalt.gotoAndPlay("out");
	}
	// aktueller inhalt ist 2
	inhalt_aktuell = 2;
}

button3.onRelease = function() {
	if (inhalt_aktuell == 0) {
		// lässt den dritten inhalt reinfahren
		inhalt3.gotoAndPlay("in");
	} else {
		// lässt ggf. den aktuellen inhalt rausfahren
		var zielinhalt = eval("inhalt"+inhalt_aktuell);
		zielinhalt.gotoAndPlay("out");
	}
	// aktueller inhalt ist 3
	inhalt_aktuell = 3;
}

stop();
Angehängte Dateien
Dateityp: zip test.zip (9,7 KB, 5x aufgerufen)
HolgerP ist offline   Mit Zitat antworten
Alt 22-02-2009, 22:46   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
da ist überhaupt nichts AS3- mässiges dabei?

wähle bei der veröffentlichung AS2 oder AS1 aus. dann sollten deine alten scripte wieder funktionieren.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 22-02-2009, 23:25   #3 (permalink)
Neuer User
 
Benutzerbild von HolgerP
 
Registriert seit: Jun 2002
Beiträge: 19
Hallo hgseib,

das ist ja das Problem. Versuche gerade dieses Script in AS3 umzuschreiben. Flash gibt mir bei der Umstellung in den Veröffentlichungseinstellungen auf AS3 lediglich Fehler bei der eval-Funktion aus. Oder klappt das komplett so nicht in AS3?
HolgerP ist offline   Mit Zitat antworten
Alt 23-02-2009, 00:03   #4 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 1.197
Lösch die Zeilen mit dem eval und veröffentliche noch mal. Dann bekommst Du noch einen Haufen anderer Fehlermeldungen.
__________________
EDV = Ende Der Vernunft
hmpf ist offline   Mit Zitat antworten
Alt 23-02-2009, 00:17   #5 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
im gegensatz zu 'von AS1 zu AS2' ist AS3 eine neuentwicklung.

natürlich tauchen eine reihe alter bekannte auf, mit ähnlichen funktionen. aber da laufen doch wesentliche dinge vollkommen anders ab. sowas kann man nicht einfach umstellen - das ist eine neuprogrammierung.

sehe auch keinen grund, warum du drei buttons in AS3 programmiert brauchst? den vorteil von AS3 nutzt du so ganz gewiss nicht aus. also da verpasst du nichts.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 23-02-2009, 00:49   #6 (permalink)
Neuer User
 
Benutzerbild von HolgerP
 
Registriert seit: Jun 2002
Beiträge: 19
Hallo,
danke für die Antworten. Wenn das weit entfernt von AS3 ist, hat das natürlich keinen Sinn. Wollte die tollen neuen Filtereigenschaften nutzen. Dann muß ich wohl erstmal wieder Photoshop für Blur nutzen

Oder kennt ihr aus dem Forum einen AS3-Thread, der eine ähnliche Datei postet?
HolgerP ist offline   Mit Zitat antworten
Alt 23-02-2009, 00:55   #7 (permalink)
Neuer User
 
Benutzerbild von padavan
 
Registriert seit: Apr 2002
Beiträge: 496
also ein gängiger ansatz wäre die movieclips in einem array/object, 3 eventlistener für die buttons, 1 funktion mit case/switch

btw: warum setzt du inhalt_aktuell erst nach dem "aufklappen" - wird dann nicht immer der vorige inhalt angezeigt? - edit: schon klar
__________________
Grafik - Webdesign - Programmierung - www.thsc.at
Adventkalender 2011 advent.wien.info/de
Jobspace - Universum der Lehrstellen www.jobspace.at

Geändert von padavan (23-02-2009 um 01:01 Uhr)
padavan ist offline   Mit Zitat antworten
Alt 23-02-2009, 01:08   #8 (permalink)
Neuer User
 
Benutzerbild von padavan
 
Registriert seit: Apr 2002
Beiträge: 496
PHP-Code:
inhalt_aktuell 0;

button1.addEventListener(MouseEvent.CLICKplay_inhalt);
button2.addEventListener(MouseEvent.CLICKplay_inhalt);
button3.addEventListener(MouseEvent.CLICKplay_inhalt);

var 
inhalt:Array = new Array (inhalt1inhalt2inhalt3);

function 
play_inhalt(Event:MouseEvent):void
{
    if (
inhalt_aktuell == 0) {
        
inhalt[int(Event.target.name.substring(7))-1].gotoAndPlay("in");
    } else {
        
inhalt[inhalt_aktuell-1].gotoAndPlay("out");
    }
    
inhalt_aktuell int(Event.target.name.substring(7));

könnte ungefähr so aussehen - aber check vielleicht mal ein paar basic tutorials über as3...
__________________
Grafik - Webdesign - Programmierung - www.thsc.at
Adventkalender 2011 advent.wien.info/de
Jobspace - Universum der Lehrstellen www.jobspace.at

Geändert von padavan (23-02-2009 um 01:09 Uhr)
padavan ist offline   Mit Zitat antworten
Alt 23-02-2009, 01:12   #9 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 1.197
Zitat:
Zitat von HolgerP Beitrag anzeigen
Wollte die tollen neuen Filtereigenschaften nutzen. Dann muß ich wohl erstmal wieder Photoshop für Blur nutzen
Die Filter gibt es nicht erst in AS3, die kannst Du auch mit AS2 nutzen.
__________________
EDV = Ende Der Vernunft
hmpf ist offline   Mit Zitat antworten
Alt 23-02-2009, 02:08   #10 (permalink)
Neuer User
 
Benutzerbild von HolgerP
 
Registriert seit: Jun 2002
Beiträge: 19
Wow padavan,

das sieht schon super aus. Danke.
Habe den Code eingefügt und auch das Script, dass auf dem letzten Bild der drei MC inhalt1, inhalt2 und inhalt3 liegt angepaßt:

Anstelle von:
Code:
_parent.neuer_inhalt();
gotoAndStop(1);
habe ich angepaßt:
Code:
var myParent:MovieClip = parent as MovieClip;
myParent.play_inhalt();
myParent.gotoAndStop( 1 );
Der Compiler gibt keinen Fehler aus, aber auf Button-Klick passiert nichts und die Ausgabe sagt:

"TypeError: Error #1010: Ein Begriff ist nicht definiert und hat keine Eigenschaften. at menue_fla::MainTimeline/play_inhalt()"

Ist das Script für den Inhalt fehlerhaft?
HolgerP ist offline   Mit Zitat antworten
Alt 23-02-2009, 10:40   #11 (permalink)
Neuer User
 
Benutzerbild von padavan
 
Registriert seit: Apr 2002
Beiträge: 496
also das war mehr so als Anregung gedacht

einfach copy-paste ohne irgendeine Ahnung von AS3 wird problematisch werden...

1. wenn die variable inhalt_aktuell nicht vorher schon deklariert wird müsste man sie sauber deklarieren:
PHP-Code:
var inhalt_aktuell:Number 0
2. die funktion play_inhalt kannst du so nicht aufrufen, die verlangt ein Event als ersten und einzigen parameter, kann also nur von eventlistener aufgerufen werden... was du dagegeben machen kannst ist die funktionalität in eine weitere funktion zu verschieben welche du von der listener-funktion aus aufrufst und die target-variablen übergibst

oder du benutzt einfach das array... das ersetzt ja sozusagen dein eval()
PHP-Code:
(root as MovieClip).inhalt[inhalt_aktuell-1].gotoAndPlay("in"); 
die einzelnen Einträge im Array verweisen ja auf deine MCs

einfach mal ein simples tutorial zur buttonprogrammierung in as3 suchen und das sollte schnell klar werden..

mahlzeit!
__________________
Grafik - Webdesign - Programmierung - www.thsc.at
Adventkalender 2011 advent.wien.info/de
Jobspace - Universum der Lehrstellen www.jobspace.at
padavan ist offline   Mit Zitat antworten
Alt 23-02-2009, 14:17   #12 (permalink)
Neuer User
 
Benutzerbild von HolgerP
 
Registriert seit: Jun 2002
Beiträge: 19
... Danke für die Tipps, padavan.
Hast Recht, das Unternehmen wird erstmal zu problematisch, da die Fragen im Laufe des kleinen Projekts ganz sicher nicht weniger werden.
Mache erstmal in AS1 und 2 weiter und konzentriere mich auf minimal im Design.

Hab' mir gestern mal pixelwar angeschaut. Die Bildpräsentation und die Navigation gefällt mir sehr gut.

Gruß HolgerP
HolgerP ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
as3, button, else, eval, parentobject

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:57 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele