Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-11-2005, 14:31   #1 (permalink)
...
 
Benutzerbild von flash bier
 
Registriert seit: Nov 2001
Beiträge: 1.227
"eval" auf der linken Seite der Gleichung -> Alternative "set"

Hi,
In der Flashhilfe steht:
Zitat:
In Flash ab Version 5 können mit eval() keine Variablenwerte oder Instanznamen dynamisch gesetzt oder abgerufen werden, da eval() nicht auf der linken Seite einer Gleichung stehen darf. Ersetzen Sie beispielsweise den Code

eval ("var" + i) = "first";

durch diesen:

this["var"+i] = "first"

oder diesen:

set ("var" + i, "first");
Nun hab ich folgendes kleines Beispiel:
Auf meiner Bühne sitzt ein MovieClip mit Instanznamen MC1 und ich möchte aus meinem Objekt heraus Eigenschaften des MovieClips ändern, hier zB _alpha:

PHP-Code:
Obj = function(){
    
this.var1 1;
}

Obj.prototype.doIt=function(){
    eval(
"MC"+this.var1)._alpha=50;
}

mein_Obj = new Obj();
mein_Obj.doIt(); 
Das ganze funktioniert eigentlich auch, nur mach ich mir irgendwie sorgen weil ja im Manual eben steht, dass ab Flash 5 eben genannte Alternativen zum Einsatz kommen sollen.
Nun funktioniert aber die Alternative mit "this" nicht, da ich ja Objekte meines Filmes und nicht des Objektes selbst ansprechen will.

Mit der Alternative "set" kann ich zwar Variablenwerte setzen, aber wie kann ich hiermit die Alpha-Werte eines MovieClips verändern?

Ich check das nicht ganz ?!

Danke für Eure Hilfe !!

Edit:

Hab da gerade noch
PHP-Code:
setProperty("ziel"eigenschaftwert/ausdruck
gefunden, ich glaube das ist das richtige, was denkt Ihr ?

MfG flash bier
__________________
Schweig oder sprich Worte, die besser sind als Schweigen !

Geändert von flash bier (05-11-2005 um 14:36 Uhr)
flash bier ist offline   Mit Zitat antworten
Alt 05-11-2005, 14:58   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo!
Ich denke, setProperty kannste genauso schnell wieder vergessen, wie du es gefunden hast. Was das werden soll, ist mir auch schleierhaft. Eine Möglichkeit wäre aber das hier:
PHP-Code:
var tl this
Obj 
= function () {
    
this.var1 1;
};
Obj.prototype.doIt = function() {
    
tl["MC"+this.var1]._alpha 50;
};
mein_Obj = new Obj();
mein_Obj.doIt(); 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 05-11-2005, 15:13   #3 (permalink)
...
 
Benutzerbild von flash bier
 
Registriert seit: Nov 2001
Beiträge: 1.227
Gute Idee!

Hatte mir überlegt eine Funktion zu schreiben, die ich dann aus meinem Objekt mit Variablenübergabe aufrufe, welche dann mit der Methode (die ich eigentlich immer gerne verwende)

this["blabla"+var].property=value;

die eigenschaft ändert ...

Aber was ist so falsch an setProperty ?
Veraltet ?

DANKE für deinen Tipp!!

MfG flash bier
__________________
Schweig oder sprich Worte, die besser sind als Schweigen !
flash bier ist offline   Mit Zitat antworten
Alt 05-11-2005, 15:21   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Ja, veraltet und halt viel zu umständlich. Mit "this" (bzw. Punktsyntax) ist's doch übersichtlicher und einfacher.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager 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 11:16 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele