Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-10-2005, 17:01   #1 (permalink)
Meep!
 
Registriert seit: Sep 2005
Beiträge: 146
movieLoad problem

ActionScript:
  1. **Fehler** E:\Flash\window.as: Zeile 126: Keine Methode mit dem Namen 'createEmptyMovieClip' vorhanden.
  2.            var container:MovieClip = createEmptyMovieClip("container", getNextHighestDepth());
  3.  
  4. Anzahl der ActionScript-Fehler: 1    Gemeldete Fehler: 1

bei dieser methode:
ActionScript:
  1. public function loadMovieToWindow(url:String,xpos,ypos:Number)
  2.     {
  3.         var container:MovieClip = createEmptyMovieClip("container", getNextHighestDepth());
  4.         var mcLoader:MovieClipLoader = new MovieClipLoader();
  5.         mcLoader.addListener(this);
  6.         mcLoader.loadClip(url, container);
  7.         container._x =xpos;
  8.         container._y =ypos;
  9.     }

wie kommts? danke
pixartist ist offline   Mit Zitat antworten
Alt 22-10-2005, 17:43   #2 (permalink)
Meep!
 
Registriert seit: Sep 2005
Beiträge: 146
hm also jetzt hab ichs hinbekommen
ActionScript:
  1. public function loadMovieToWindow(url:String,xpos,ypos:Number)
  2.     {
  3.         var container:MovieClip = WinObject.createEmptyMovieClip("container", WinDepth+1);
  4.         var mcLoader:MovieClipLoader = new MovieClipLoader();
  5.         mcLoader.addListener(this);
  6.         mcLoader.loadClip(url, container);
  7.         container._x =xpos;
  8.         container._y =ypos+20;
  9.  
  10.         /*container._width = winWidth;
  11.         container._height = winHeight-20;*/
  12.     }
aber wie kann ich den geladenen film resizen???
pixartist ist offline   Mit Zitat antworten
Alt 22-10-2005, 19:21   #3 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
das geht leider erst, wenn der inhalt komplett fertig geladen + dargestellt wurde. alle anweisungen zur größenänderung werden während des ladens gelöscht. entweder du löst das mit einem preloader, indem du die größenänderung beim erfolgreichen loadComplete durchführst (und alles andere auch). (empfohlen)

oder du erledigst das mit der größe zuvor. das kann manchmal sehr praktisch sein, erfordert aber ein bisschen drumherum. denn wenn du einen leeren mc auf die größe 400 skalierst, bedeutet das nicht allzuviel, hat auf jeden fall keinen einfluss auf den zu ladenden inhalt.
ich mache es also oft, dass ich mir mit er drawing API linien in einen leeren mc male (lineTo), und zwar so dass der mc dann genau die maße hat, die er nach dem laden hätte. dann kannst du den mc skalieren wie du willst, und alles was du reinlädtst wird sich anpassen. naja, das ist immer ein bisschen trial&error-business, also eher für spezielle fälle. (wie z.b. wenn du 100 bilder mit der gleichen größe hast, die du irgendwann in eigene container laden möchtest - da kann es dann leichter sein, ein script zu schreiben, welches diese container erstellt und skaliert, anstatt 100 preloader laufen zu lassen).

also: da muss ein preloader her!

gruß janosch

EDIT:
umn, hätte mir dein script mal besser ansehen sollen, löblich dass du den MCL benutzt , in dem fall hast du ja schon deinen preloader. einfach mal dem listener eine onComplete = function () { } funktion mit auf den weg geben, und da alles zur größenänderung angeben.

Geändert von janoshnosh (22-10-2005 um 19:25 Uhr)
janoshnosh ist offline   Mit Zitat antworten
Alt 22-10-2005, 20:42   #4 (permalink)
Meep!
 
Registriert seit: Sep 2005
Beiträge: 146
Zitat:
Zitat von janoshnosh
das geht leider erst, wenn der inhalt komplett fertig geladen + dargestellt wurde. alle anweisungen zur größenänderung werden während des ladens gelöscht. entweder du löst das mit einem preloader, indem du die größenänderung beim erfolgreichen loadComplete durchführst (und alles andere auch). (empfohlen)

oder du erledigst das mit der größe zuvor. das kann manchmal sehr praktisch sein, erfordert aber ein bisschen drumherum. denn wenn du einen leeren mc auf die größe 400 skalierst, bedeutet das nicht allzuviel, hat auf jeden fall keinen einfluss auf den zu ladenden inhalt.
ich mache es also oft, dass ich mir mit er drawing API linien in einen leeren mc male (lineTo), und zwar so dass der mc dann genau die maße hat, die er nach dem laden hätte. dann kannst du den mc skalieren wie du willst, und alles was du reinlädtst wird sich anpassen. naja, das ist immer ein bisschen trial&error-business, also eher für spezielle fälle. (wie z.b. wenn du 100 bilder mit der gleichen größe hast, die du irgendwann in eigene container laden möchtest - da kann es dann leichter sein, ein script zu schreiben, welches diese container erstellt und skaliert, anstatt 100 preloader laufen zu lassen).

also: da muss ein preloader her!

gruß janosch

EDIT:
umn, hätte mir dein script mal besser ansehen sollen, löblich dass du den MCL benutzt , in dem fall hast du ja schon deinen preloader. einfach mal dem listener eine onComplete = function () { } funktion mit auf den weg geben, und da alles zur größenänderung angeben.
danke, aber wie geht das mit dem listener genau??
pixartist ist offline   Mit Zitat antworten
Alt 22-10-2005, 20:53   #5 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
ziemlich genauso, wie in der flash hilfe beschrieben. BTW: um auf meine antwort bezug zu nehmen, musst du sie nicht unbedingt komplett zitieren - das macht überhaupt keinen sinn und schafft nur unnötige bytes.
versuchs mal so:
ActionScript:
  1. public function loadMovieToWindow(url:String,xpos,ypos:Number)
  2. {
  3.         var container:MovieClip = WinObject.createEmptyMovieClip("container", WinDepth+1);
  4.         var mcLoader:MovieClipLoader = new MovieClipLoader();
  5. var scope = this;
  6. var listener:Object = new Object ();
  7. listener.onLoadComplete = function () {       
  8.         container._width = scope.winWidth;
  9.         container._height = scope.winHeight-20;
  10. }
  11.  
  12.         mcLoader.addListener(listener);
  13.         mcLoader.loadClip(url, container);
  14.         container._x =xpos;
  15.         container._y =ypos+20;
  16. }
gruß janosch
janoshnosh ist offline   Mit Zitat antworten
Alt 22-10-2005, 21:03   #6 (permalink)
Meep!
 
Registriert seit: Sep 2005
Beiträge: 146
geht nicht der movie wird zwar geladen, ist aber unsichtbar
wenn ich ihn nicht resize ist er aber sichtbar!
pixartist ist offline   Mit Zitat antworten
Alt 22-10-2005, 21:58   #7 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
ok, scheint als wäre "winWidth" und "winHeight" in der funktion unbekannt, das habe ich versucht mit der scope-variablen zu lösen. trace doch mal bitte winWidth und winHeight, bzw. schreib einfach mal das:
ActionScript:
  1. public function loadMovieToWindow(url:String,xpos,ypos:Number)
  2. {
  3.         var container:MovieClip = WinObject.createEmptyMovieClip("container", WinDepth+1);
  4.         var mcLoader:MovieClipLoader = new MovieClipLoader();
  5.         var scope = this;
  6.         var listener:Object = new Object ();
  7.         listener.onLoadComplete = function (mc:MovieClip) {
  8. trace('1. '+winWidth);
  9. trace('2. '+scope.winWidth);
  10.                 mc._width = scope.winWidth;
  11.                 mc._height = scope.winHeight-20;
  12.         }
  13.        
  14.         mcLoader.addListener(listener);
  15.         mcLoader.loadClip(url, container);
  16.         container._x =xpos;
  17.         container._y =ypos+20;
  18. }
ist entweder 1. oder 2. nicht undefined?
falls nicht, musst du es irgendwie schaffen, die variablen winWidth und winHeight in der funktion verfügbar zu machen - zum beispiel indem du sie global deklarierst (_global.winWidth = 100, dann kannst du sie wiederum global abrufen (mc._width = _global.winWidth).

aber erstmal mit dem trace testen, ob sie wirklich unbekannt sind, sonst stimmt da was tieferliegendes nicht.

gruß janosch
janoshnosh ist offline   Mit Zitat antworten
Alt 22-10-2005, 22:27   #8 (permalink)
Meep!
 
Registriert seit: Sep 2005
Beiträge: 146
1. is undefined
pixartist ist offline   Mit Zitat antworten
Alt 22-10-2005, 22:45   #9 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
2. nicht?? dann ist das wieder der gute alte flash-bug über den nicht gerne geredet wird: fertig geladen, aber nicht fertig dargestellt => größenänderung wird geschluckt.
brachiallösungsvorschlag:
ActionScript:
  1. public function loadMovieToWindow(url:String,xpos:Number,ypos:Number)
  2. {
  3.         var container:MovieClip = WinObject.createEmptyMovieClip("container", WinDepth+1);
  4.         var mcLoader:MovieClipLoader = new MovieClipLoader();
  5.         var scope = this;
  6.         var listener:Object = new Object ();
  7.         listener.onLoadComplete = function (mc:MovieClip) {
  8. mc.onEnterFrame = function () {
  9.                 trace('2. '+scope.winWidth);
  10. if (this._height > 0) {
  11. delete this.onEnterFrame;
  12.                 mc._width = scope.winWidth;
  13.                 mc._height = scope.winHeight-20;
  14. }
  15. }
  16.         }
  17.        
  18.         mcLoader.addListener(listener);
  19.         mcLoader.loadClip(url, container);
  20.         container._x =xpos;
  21.         container._y =ypos+20;
  22. }
zur erklärung:
sobald der inhalt fertig geladen wird, wird beim container-mc eine onEnterFrame-schleife gestartet, die überprüft, ob der mc eine breite hat. dies hat er nämlich erst, wenn er komplett fertig dargestellt ist. sobald das also passiert, wird die größenänderung vorgenommen und das oEF wieder entfernt. das trace() liegt derzeit so, dass du diesen oEF-vorgang im output verfolgen können solltest, irgendwann sollte es aber aufhören zu tracen.

gruß janosch
janoshnosh ist offline   Mit Zitat antworten
Alt 22-10-2005, 23:08   #10 (permalink)
Meep!
 
Registriert seit: Sep 2005
Beiträge: 146
juhu geht! thx
pixartist ist offline   Mit Zitat antworten
Alt 22-10-2005, 23:10   #11 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
janoshnosh ist offline   Mit Zitat antworten
Alt 22-10-2005, 23:58   #12 (permalink)
Meep!
 
Registriert seit: Sep 2005
Beiträge: 146
hm noch ne frage...also ich hab auf dem film ein onMouseDown und onMouseMove usw...wenn ich jetzt nen film da reinlade, dann kann ich nicht in den geladenen film klicken...wie kann ich das ändern?

danke!
pixartist 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:45 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele