Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-11-2005, 22:35   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2004
Beiträge: 19
Eigenschaften dynamisch in attachMovie einbauen

Flash MX2004

Hi,
ich stehe hier gerade auf dem Schlauch und komme nicht weiter.

Ich habe 3 Objekte mit bestimmten Eigenschaften wie folgt erschaffen.
Code:
bild_1 = new Object();
bild_1.name = "Foto1";
bild_1.quelle = "foto1_jpg";
bild_1.breite = 100;
bild_1.höhe = 80;

bild_2 = new Object();
bild_2.name = "Foto2";
bild_2.quelle = "foto2_jpg";
bild_2.breite = 100;
bild_2.höhe = 80;

bild_3 = new Object();
bild_3.name = "Foto3";
bild_3.quelle = "foto3_jpg";
bild_3.breite = 100;
bild_3.höhe = 80;
Die Bilder liegen als "foto1_jpg" u.s.w. als Grafiksymbole in der Bibliothek.

Nun möchte ich mittels einer Funktion mit der Bildnummer als Übergabewert die jeweilige Eigenschaften für attachMovie nutzbar machen und die Position genauso "dynamisch" setzen:
Code:
 
bild_darstellen (1);

function bild_darstellen (bild_id)
{ attachMovie("bild_" + bild_id + ".quelle", "bild_" + bild_id, 1);
}
wenn ich keine Variablen, also die Eigenschaft direkt nehme (attachMovie(bild_1.quelle,....), dann geht es, ich hab nur keine Ahnung, wie ich das dynamisch hinbekomme, das sich dort eben nur die "1" ändert und duch den Übergabewert ersetzt wird.

Kann mir da einer helfen?

vielen Dankk
__________________
mfg

AlexK-Mainz
AlexK-Mainz ist offline   Mit Zitat antworten
Alt 02-11-2005, 22:59   #2 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
PHP-Code:
function bild_darstellen (bild_id){ 
attachMovie("bild_" bild_id ".quelle""bild_" bild_id1);

Heißen die Bilder in der Bibliothek jetzt foto1_jpg
oder bild_1.quelle?
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 03-11-2005, 19:51   #3 (permalink)
Neuer User
 
Registriert seit: Aug 2004
Beiträge: 19
die Bilder in der Bibliothek heißen foto1_jpg
die Namen dafür steht in der jeweiligen Eigenschaft des Objektes mit der Bezeichnung ".quelle".

Mein Problem ist, das ich auf das Objekt variabel zugreifen muss:
Die Objekte bild_1, bild_2, bild_3 haben jeweils unter in der Eigenschaft .quelle den Namen des Bildes aus der Bibliothek. Diese Eigenschaft möchte ich jetzt abfragen.

Normalerweise würde ich hingehen und schreiben:
bild = bild_1.quelle
oder
bild = bild_2.quelle
oder eben
bild = bild_3.quelle

Aber bei einer variablen Bildanzahl ist das nicht möglich.

wenn ich aus dem Objekt bild_1 die Eigenschaft .quelle abfragen würde. Aber genau diese Abfrage will ich ja variabel gestalten:
bild = bild_?.quelle

das Fragezeichen will ich durch eine Variable ersetzen.

Die Syntax will ich dann als Parameter für attachMovie einsetzen - quasi:
attachMovie(bild_?.quelle,....)

Sorry, wenn ich mich nicht verständlich ausgedrückt habe.

Wenn es dafür keine Lösung gibt, muss ich wohl die Daten in einem Array speichern - aber zu Lernzwecken wollte ich halt ein Objekt mit Eigenschaften nehmen.
__________________
mfg

AlexK-Mainz
AlexK-Mainz ist offline   Mit Zitat antworten
Alt 03-11-2005, 20:04   #4 (permalink)
Elo
Nicht sehr eloquent!
 
Benutzerbild von Elo
 
Registriert seit: Feb 2003
Ort: Berlin
Beiträge: 181
Liegt wahrsceinlich daran das du die Bilder in der Bibliothek
als Grafiksymbole drin liegen hast. MovieClips daraus machen
und bei den Verknüpfungseigenschaften als Bezeichner z.B.
bild_1.quelle reinschreiben. Dann sollte es gehen.

Grüsse,

Elo
__________________
In the life of a Flash developer, only one thing is guaranteed: Change.
Elo ist offline   Mit Zitat antworten
Alt 03-11-2005, 20:31   #5 (permalink)
Neuer User
 
Registriert seit: Aug 2004
Beiträge: 19
Nee, daran liegt es nicht, denn die Funktion funktioniert ja ansich, wenn ich das Objekt direkt anspreche z.B. attachMovie(bild_1.quelle, "bild_" + bild_id,1)

Wenn ich das so mache:
attachMovie("bild_" + bild_id + ".quelle", ...);
dann bekomme ich nichts angezeigt. Ich vermute er such dann in der Biliothek nach einem Bezeichner namens: bild_1.quelle -> aber das soll ja erst die Variable sein.

Es geht mir darum den Objektnamen - also das ? dynamisch zu gestalten.
bild_?.quelle
__________________
mfg

AlexK-Mainz
AlexK-Mainz ist offline   Mit Zitat antworten
Alt 03-11-2005, 20:34   #6 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
PHP-Code:
attachMovie(eval("bild_" bild_id).quelle"bild_" bild_id1); 
__________________
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 03-11-2005, 21:54   #7 (permalink)
Neuer User
 
Registriert seit: Aug 2004
Beiträge: 19
@ sonar

danke... danke ... danke...

genau das hab ich gesucht!


Hab zwar keine Ahnung was eval bedeutet - aber das ist ein Grund mal was über "eval" zu lesen.
__________________
mfg

AlexK-Mainz
AlexK-Mainz ist offline   Mit Zitat antworten
Alt 04-11-2005, 00:11   #8 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Zitat:
Zitat von AlexK-Mainz
Hab zwar keine Ahnung was eval bedeutet - aber das ist ein Grund mal was über "eval" zu lesen.
Genau, die Taste F1 in Flash erzählt dir da gerne mehr dazu...
__________________
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 04-11-2005, 11:43   #9 (permalink)
Neuer User
 
Registriert seit: Aug 2004
Beiträge: 19
Wink

Nur der Vollstädigkeit halber, damit andere auch die Lösung meines Problems verstehen:

Das Zauberwort EVAL, welches die Lösung für dieses Problem war:
(Auszug aud der Programmhilfe)

Die Funktion eval wandelt einen String in einen Verweis auf einen Movieclip um, der für den Aufruf einer Methode wie beispielsweise play verwendet werden kann.

Beispiel:
Das folgende Skript stellt die Variable i auf den Wert 1 ein. Anschließend wird mit Hilfe der Funktion eval ein Verweis auf eine Movieclipinstanz erstellt und der Variablen x zugewiesen. Die Variable x, nun ein Verweis auf eine Movieclipinstanz, kann sodann wie folgt für den Aufruf der MovieClip-Objektmethoden verwendet werden:

i = 1;
x = eval("mc"+i);
x.play();
// entspricht der Schreibweise mc1.play();


Hoffe, jetzt wird es jedem klar, der den Post verfolgt hat - Verstehen ist besser als einfach nur abschreiben!
__________________
mfg

AlexK-Mainz
AlexK-Mainz ist offline   Mit Zitat antworten
Alt 04-11-2005, 12:45   #10 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Zitat:
Zitat von AlexK-Mainz
Die Funktion eval wandelt einen String in einen Verweis auf einen Movieclip um
Der Vollständigkeit halber sollte man noch anmerken, dass es nicht nur um MovieClips geht, sondern um Objekte generell (sh. dein Beispiel).
Zitat:
Zitat von AlexK-Mainz
Verstehen ist besser als einfach nur abschreiben!
Jawohl, richtig so. Das sollten sich hier einige Kandidaten mal zu Herzen nehmen...
__________________
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
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 06:37 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele