Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-07-2005, 23:51   #1 (permalink)
yeah!
 
Benutzerbild von rockstar
 
Registriert seit: Jun 2004
Ort: berlin
Beiträge: 103
onLoad an mc anhängen?

mit mc.onEnterFrame = function() {} läßt sich ja eine funktion an ein mc hängen. geht das auch mit onLoad?

bringt das überhaupt was, wenn ich den mc per this.attachMovie() erzeuge? dann müßte ja das onLoad drangehängt werden, bevor der mc erzeugt wird, damit onLoad überhaupt ausgeführt werden kann.

wie kann ich das lösen?

hab folgendes probiert, geht aber leider nicht. die initialpositionen werden so nicht gesetzt.

bitte um hilfe!

ActionScript:
  1. for (i=0; i<6; i++) {
  2.     // generiert clips aus der bibliothek, symbol muß vorher für export verknüpft werden
  3.     _root.attachMovie("clip", "clip"+i, i);
  4.     _root["clip"+i].onLoad = function(i) {
  5.         // onLoad
  6.         _root.placeit(i);
  7.     };
  8.     _root["clip"+i].onEnterFrame = function() {
  9.         // erste onEnterFrame function
  10.         _root.movitmovit();
  11.     };
  12. }
  13. function movitmovit() {
  14.     //function für onEnterFrame
  15.     with (this) {
  16.         _x += 1;
  17.     }
  18. }
  19. function placeit(i) {
  20.     // function für onLoad
  21.     with (this) {
  22.         trace(i);
  23.         _y = i*40;
  24.         _x = i*40;
  25.     }
  26. }
rockstar ist offline   Mit Zitat antworten
Alt 13-07-2005, 00:02   #2 (permalink)
Neuer User
 
Benutzerbild von metalicat
 
Registriert seit: Aug 2004
Beiträge: 31
Um die Anfangspositionen zu setzen mußt du nicht extra eine Funktion schreiben. Du kannst die Positionen auch einfach nach dem attachen zuweisen.

ActionScript:
  1. for (i=0; i<6; i++) {
  2.         // generiert clips aus der bibliothek, symbol muß vorher für export verknüpft werden
  3.         _root.attachMovie("clip", "clip"+i, i);
  4.         _root["clip"+i]._x =40*i
  5.         _root["clip"+i]._y =40*i
  6.         _root["clip"+i].onEnterFrame = function() {
  7.                 // erste onEnterFrame function
  8.                 _root.movitmovit();
  9.         };
  10. }
  11. function movitmovit() {
  12.         //function für onEnterFrame
  13.         with (this) {
  14.                 _x += 1;
  15.         }
  16. }
metalicat ist offline   Mit Zitat antworten
Alt 13-07-2005, 00:06   #3 (permalink)
yeah!
 
Benutzerbild von rockstar
 
Registriert seit: Jun 2004
Ort: berlin
Beiträge: 103
ja ich weiß. in diesem einfachen beispiel geht das auch noch. aber wenn ich aufwendigere as habe, dann sieht das schon anders aus.

wobei, eigentlich ist es ja echt egal. du hast vermutlich recht.

bei mehreren mc´s kann man das ja auch in einer for-schleife erledigen, genau.

danke!
rockstar ist offline   Mit Zitat antworten
Alt 13-07-2005, 00:08   #4 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Also das onLoad() funktioniert leider nicht in dieser
Art und Weise. Dafür müsste man das onClipEvent(load)
nehmen.
Das onLoad() ist nur für die Klassenebene gedacht.
Was das genau heißt, sei hier mal nicht weiter erklärt.
Das geht in die Objekt-orientierte Programmierung.

Ich zitiere mal aus dem Buch:

Die Rückruf-Variante von onLoad() arbeitet ganz anders
als onClipEvent(load): Sie hat nur dann eine Wirkung, wenn sie
auf Klassenebene zugewiesen wird und nicht auf Instanzebene.
Wird sie auf Instanzebene zugewiesen, wird sie einfach ignoriert.
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 13-07-2005, 00:13   #5 (permalink)
yeah!
 
Benutzerbild von rockstar
 
Registriert seit: Jun 2004
Ort: berlin
Beiträge: 103
ok, das wird für meinen fall auch nicht gehen, da ich einige werte (nicht aus dem beispiel, sondern für mein projekt) parametrisieren muß.

aber interessant zu wissen. danke!

Geändert von rockstar (13-07-2005 um 00:24 Uhr)
rockstar ist offline   Mit Zitat antworten
Alt 13-07-2005, 00:18   #6 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Ja das ist eine wichtige Erkenntnis.
Ich wollte es auch lange nicht wahr
haben, dass es nicht geht.
Man könnte so schön einen Clip stoppen,
wenn er geladen ist.
Aber mit einem Workaround geht das ja auch.
Man muss halt über eine Schleife ständig
abfragen, ob ein eingeladener Clip (bzw. der container Clip) eine _width
über "0" hat. Ist die _width>0, ist der Clip geladen
und man kann ihn ansprechen.
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz 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 23:50 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele