Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-09-2005, 17:35   #1 (permalink)
man lernt immer dazu
 
Benutzerbild von dabinjo
 
Registriert seit: Dec 2003
Ort: Freiburg
Beiträge: 442
movieclip und setmask problem

salute leute

Kann ich bei createEmtyMovieClip das setMask anwenden ?
bei funzt es nicht so richtig...

ActionScript:
  1. _root.createEmptyMovieClip("container", 10);
  2. _root.container.setMask(mask)
  3. _root.container._x = 63;
  4. _root.container._y = 430;

liebe grüsse

daniel
dabinjo ist offline   Mit Zitat antworten
Alt 14-09-2005, 18:14   #2 (permalink)
Custom Title
 
Registriert seit: Aug 2001
Beiträge: 467
Mal blöd gefragt: Gibts denn eine Instanz die in Variable "mask" gespeichert ist ?
__________________
---::::: AVisioN :::::---

Geändert von AVisioN (14-09-2005 um 18:16 Uhr)
AVisioN ist offline   Mit Zitat antworten
Alt 14-09-2005, 18:15   #3 (permalink)
man lernt immer dazu
 
Benutzerbild von dabinjo
 
Registriert seit: Dec 2003
Ort: Freiburg
Beiträge: 442
klar...
dabinjo ist offline   Mit Zitat antworten
Alt 14-09-2005, 18:16   #4 (permalink)
Custom Title
 
Registriert seit: Aug 2001
Beiträge: 467
Liess mal mein update Du verwendest ja die Variable mask - nicht den Namen.
__________________
---::::: AVisioN :::::---
AVisioN ist offline   Mit Zitat antworten
Alt 14-09-2005, 18:24   #5 (permalink)
man lernt immer dazu
 
Benutzerbild von dabinjo
 
Registriert seit: Dec 2003
Ort: Freiburg
Beiträge: 442
ich dachte container ist der zu maskierende mc und (mask) der mc bzw instanzenname der als maske wirkt? oder hab ich in der hilfe etwas falsch verstanden?

gruss

daniel
dabinjo ist offline   Mit Zitat antworten
Alt 14-09-2005, 18:34   #6 (permalink)
Custom Title
 
Registriert seit: Aug 2001
Beiträge: 467
OK: Neuer Film > Neues Symbol (Movie der zu sehen sein soll) > In der Library Verknüpfung "masked_mc" > Masken Movie auf der Bühne erstellt und Instanz mask_mc genannt > nun auf den ersten Frame (den einzigen den wir haben ):
ActionScript:
  1. scope = this;
  2. var empty_mc = createEmptyMovieClip("container", 10);
  3. var target_mc = scope.container.attachMovie("masked_mc","masked_mc",2);
  4. target_mc.setMask(scope.mask_mc);

Nun verschieb mal die Maske vor dem Testen mal über mal neben dem NullPunkt und Du wirst sehen es geht

Zu Deiner Frage : richtig - aber wenn Du einfach (mask) schreibst wird das zu nichts führen.. Mach mal was ich gesagt hab - dann wirds klarer hoffe ich.

Grüsse,
Alex
__________________
---::::: AVisioN :::::---
AVisioN ist offline   Mit Zitat antworten
Alt 14-09-2005, 18:48   #7 (permalink)
"Lust auf Stil"
 
Benutzerbild von questionner
 
Registriert seit: Jun 2003
Ort: Florenz
Beiträge: 1.490
Du musst schon wissen, welche Objekte Du verwendest: statisch oder dynamisch. Gibt ja:
ActionScript:
  1. mc1.setMask(mc2);
  2. //und
  3. mc1.setMask("mc2");
Und dann solltest Du auf die Tiefen achten. Wenn Du nur dynamisch arbeitest, ginge es z.B. so:
ActionScript:
  1. createEmptyMovieClip("mc1", 1);
  2. //nun kann dieser etwas tun bzw. laden
  3. //z.B. dann so die Maske nehmen:
  4. attachMovie("maske", "maske", 2);
  5. //kannst aber alternativ auch mittels drawing den MC dynamisch basteln
  6. mc1.setMask(maske);

Edit: Da war einer schneller, war doch nur beim tippen kurz im Kinderzimmer ...
__________________
Dann geht ein Bild hinein, geht durch der Glieder angespannter Stille - und hört im Herzen auf zu sein.
questionner ist offline   Mit Zitat antworten
Alt 14-09-2005, 18:59   #8 (permalink)
man lernt immer dazu
 
Benutzerbild von dabinjo
 
Registriert seit: Dec 2003
Ort: Freiburg
Beiträge: 442
erst mal danke...aber es geht nicht. ich habs vorher schonmal statisch probiert und jetzt dynamisch. die maske will nicht...ich könnt den container einfach auf die bühne ziehen aber dann hab ich ja nix gelernt...also...ich poste mal den code mit der funktion drin. vielleicht kann mit jemand sagen ob ich etwas falsch mache...

ActionScript:
  1. _root.balken._visible = 0;
  2. scope = this;
  3. var empty_mc = createEmptyMovieClip("container", 1);
  4. var target_mc = scope.container.attachMovie("masked_mc","mask_mc",2);
  5. target_mc.setMask(scope.mask_mc);
  6. _root.container._x = 63;
  7. _root.container._y = 430;
  8. _root.extern_laden = function (clip) {
  9.     _root.container.loadMovie(clip);
  10.     _root.createEmptyMovieClip("control", 20);
  11.     // _root.txtProzent._visible = 1;
  12.     _root.control.onEnterFrame = function() {
  13.         if (_root.container.getBytesLoaded()>=4) {
  14.             _root.balken._visible = 1;
  15.             _root.container._visible = 0;
  16.             gesamt = _root.container.getBytesTotal();
  17.             bereits = _root.container.getBytesLoaded();
  18.             prozent = Math.ceil((bereits/gesamt)*100);
  19.             // _root.txtProzent.text = prozent+"%";
  20.             _root.balken._xscale = prozent;
  21.             // _root.wheel._alpha = prozent
  22.             if (prozent>=100) {
  23.                 var displaydelay = setInterval(function () { clearInterval(displaydelay);_root.container._visible = 1;}, 300);
  24.                 _root.balken.alphaTo(0, 1);
  25.                 // _root.container.gotoAndPlay(2);
  26.                 // _root.txtProzent._visible = 0;
  27.                 // _root.balken._visible = 0;
  28.                 delete this.onEnterFrame;
  29.             }
  30.         }
  31.     };
  32. };
  33. /////////////////////////////////content-menu/////////////////////////////////////
  34. for (x=1; x<=7; x++) {
  35.     content1["buttonsub"+x].content1.pressed = true;
  36. }
  37. //projekt
  38. content1.buttonsub1.content1.onPress = function() {
  39.     if (content1.buttonsub1.content1.pressed == true) {
  40.         unloadMovie("container");
  41.         _root.balken._alpha = 100;
  42.         _root.balken._visible = 0;
  43.         var displaydelay = setInterval(function () {
  44.             clearInterval(displaydelay);
  45.             extern_laden("pictures.swf"/*?cache=" + (new Date().getTime())*/);
  46.         }, 0);
  47.        
  48.     for (x=1; x<=5; x++) {
  49.             content1["buttonsub"+x].content1.pressed = true;
  50.         }
  51.         content1.buttonsub1.content1.pressed = false;
  52.     }
  53. };
dabinjo ist offline   Mit Zitat antworten
Alt 14-09-2005, 19:03   #9 (permalink)
Custom Title
 
Registriert seit: Aug 2001
Beiträge: 467
Einfacher wärs Du beschreibst was Du erreichen willst und wir bauen darauf auf
Ich weiss ja nichtmal welches script wo steht ... mal _root mal nich ich würde mir mal _root abgewöhnen.. dann gewöhnst Du Dich auch schnell dran "wo wer iss"
__________________
---::::: AVisioN :::::---

Geändert von AVisioN (14-09-2005 um 19:05 Uhr)
AVisioN ist offline   Mit Zitat antworten
Alt 14-09-2005, 19:13   #10 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Definiere mal die Maske wenn das Bild fertig geladen ist.

Sprich:
ActionScript:
  1. // ...
  2.                         if (prozent>=100) {
  3. target_mc.setMask(scope.mask_mc);
  4. // ...
  5.  

*Hallöchen questionner*
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::

Geändert von psyk (14-09-2005 um 19:14 Uhr)
psyk ist offline   Mit Zitat antworten
Alt 14-09-2005, 19:19   #11 (permalink)
man lernt immer dazu
 
Benutzerbild von dabinjo
 
Registriert seit: Dec 2003
Ort: Freiburg
Beiträge: 442
also ich versuchs mal...

ich erstelle einen container und die zugehörige maske:

ActionScript:
  1. createEmptyMovieClip("container", 1);
  2. attachMovie("maske", "maske", 2);
  3. container.setMask(maske);
  4. maske._x=63
  5. maske._x=430
  6. container._x = 63;
  7. container._y = 430;

in diesen container lade ich einen film über die funktion extern_laden und verbinde sie mit einem preloader:


ActionScript:
  1. extern_laden = function (clip) {
  2.     container.loadMovie(clip);
  3.     createEmptyMovieClip("control", 20);
  4.     control.onEnterFrame = function() {
  5.         if (container.getBytesLoaded()>=4) {
  6.             balken._visible = 1;
  7.             container._visible = 0;
  8.             gesamt = container.getBytesTotal();
  9.             bereits = container.getBytesLoaded();
  10.             prozent = Math.ceil((bereits/gesamt)*100);
  11.             balken._xscale = prozent;
  12.             if (prozent>=100) {
  13.                 var displaydelay = setInterval(function () { clearInterval(displaydelay); container._visible = 1;}, 300);
  14.                 balken.alphaTo(0, 1);
  15.                 delete this.onEnterFrame;
  16.             }
  17.         }
  18.     };
  19. };

nun lade ich den externen film rein der grösser ist als der darstellungsbereich (deshalb die maske):

ActionScript:
  1. content1.buttonsub1.content1.onPress = function() {
  2. extern_laden("pictures.swf"/*?cache=" + (new Date().getTime())*/);
  3. };

Jetzt müsste die maske doch den darstellungsbereich einschränken, auch den importierten film...aber tuts doch nicht...die maske ist da. nur wirkt sie sich nicht auf den externen film aus.

ich hoffe das war verständlich...

liebe grüsse

daniel
dabinjo ist offline   Mit Zitat antworten
Alt 14-09-2005, 19:57   #12 (permalink)
"Lust auf Stil"
 
Benutzerbild von questionner
 
Registriert seit: Jun 2003
Ort: Florenz
Beiträge: 1.490
Warum so umständlich? Setzt doch zuerst den MC, der die Maske bekommen soll mit createEmptyMovieClip auf Tiefe 1, der wiederum setzt sich innen einen neuen, der den externen Film laden soll per createEmptyMovieClip. Hier wendest Du Deinn Ladevorgang samt Preloader an. Dann setzt Du zu dem ersten MC mit attachMovie dem Masken-MC auf Tiefe 2.
Oder Du attached einen MC in den ersten MC auf Klick, der in sich das Script enthält, den externen Film zu laden. Die Maske setzt Du immer noch über den ersten MC.

Hey Psyk, was ist denn mit Dir passiert? Kahlgeschoren? Samt Brusthaaren? Oder Wette verloren?
__________________
Dann geht ein Bild hinein, geht durch der Glieder angespannter Stille - und hört im Herzen auf zu sein.
questionner ist offline   Mit Zitat antworten
Alt 14-09-2005, 20:01   #13 (permalink)
man lernt immer dazu
 
Benutzerbild von dabinjo
 
Registriert seit: Dec 2003
Ort: Freiburg
Beiträge: 442
ok...habe den fehler gefunden...vor lauter codezeilen habe ich zweimal _x für die position angegeben...nu gehts
dabinjo ist offline   Mit Zitat antworten
Alt 14-09-2005, 20:11   #14 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
@ questionner:Es ist doch bald Wiesen Zeit.

Und als überzeugter Bierliebhaber, da solidarisiert man sich halt.
Schau mal hier:
Flashforum, das Säufer Forum?!
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 14-09-2005, 20:30   #15 (permalink)
"Lust auf Stil"
 
Benutzerbild von questionner
 
Registriert seit: Jun 2003
Ort: Florenz
Beiträge: 1.490
Ist mir irgendwie nicht untergekommen. Liegt wahrscheinlich am Bier. Bin kein Vertilger desselben. Aber Euch allen ein Prosit etc.. Bleibe dann lieber bei einer Flasche Moet & Chandon für 150 Euro Jahrgang 1982. Und dann darf es prickeln ..
__________________
Dann geht ein Bild hinein, geht durch der Glieder angespannter Stille - und hört im Herzen auf zu sein.
questionner 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 01:35 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele