Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27-02-2008, 14:01   #1 (permalink)
Neuer User
 
Benutzerbild von xDevLars
 
Registriert seit: Feb 2008
Ort: Münsterland
Beiträge: 40
prüfen ob mc geladen ist

Hallo zusammen,

ich brauche eine Funktion die mir sagt, ob meine MC schon geladen ist. Und das in einem bestimmen zusammenhang.
Denn ich möchte die Höhe des MC ermitteln, damit die MC's schön untereinander platziert werden können und das Script läuft "zu schnell" um die Höhe zu berechnen.

PHP-Code:
var movies:Array = new Array( "Frage_ta""rb_mc""footer_mc" );

var 
startY:Number 10;
var 
abstand:Number 10;

for ( var 
i:Number 0movies.lengthi++ )
{
    var 
mc:MovieClip this.attachMoviemovies], "movie" ithis.getNextHighestDepth() );
       
this.onEnterFrame = function() { //habe ich dazu gebastelt
    
geladen mc.getBytesLoaded(); //habe ich dazu gebastelt
    
gesamt mc.getBytesTotal(); //habe ich dazu gebastelt
    
if (geladen>=gesamt && geladen>10) { //habe ich dazu gebastelt
       
mc.Frage(); //soll zuerst den MC aufrufen um die größe zu ermitteln
    
mc.rb(); //soll zuerst den MC aufrufen um die größe zu ermitteln
}
}
    
mc._x 10;
    
mc._y startY;
    
startY += mc._height abstand;
    
//trace("meinRB._y ="+startY);

Kann mir jemand sagen wie ich ein wait bis geladen einbauen kann?


Gruß

derLars
xDevLars ist offline   Mit Zitat antworten
Alt 27-02-2008, 14:03   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
attachMovie nimmt daten aus dem RAM, das kann garnicht dauern!

preloader machen nur sinn, wenn man etwas vom server laden will.

das ist vollkommen ausreichend:
Code:
var movies:Array = new Array("Frage_ta", "rb_mc", "footer_mc");
var startY:Number = 10;
var abstand:Number = 10;
for (var i:Number = 0; i<movies.length; i++) {
  var mc:MovieClip = this.attachMovie(movies[i], "movie"+i, this.getNextHighestDepth());
  mc._x = 10;
  mc._y = startY;
  startY += mc._height+abstand;
}
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (27-02-2008 um 14:08 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 27-02-2008, 14:18   #3 (permalink)
Neuer User
 
Benutzerbild von xDevLars
 
Registriert seit: Feb 2008
Ort: Münsterland
Beiträge: 40
Hallo,

das ist mein UrsprungsScript, ja.
Aber dann passiert das wie in der angehägten swf zu sehen. Alles steht übereinander!

Das ist der Inhalt von Frage_ta
PHP-Code:
    Frage_ta.setSize(20060);
    
Frage_ta.borderStyle "none";
    
Frage_ta.wordWrap true;
    
Frage_ta.editable false;
    
Frage_ta.text "Vorwahlen in Wisconsin und Hawaii Obama siegt zum zehnten Mal in Folge"
und in rb_mc werden dyn. RadioButtons erzeugt.

Gruß

derLars
Angehängte Dateien
Dateityp: zip vote.zip (41,1 KB, 1x aufgerufen)
xDevLars ist offline   Mit Zitat antworten
Alt 27-02-2008, 14:25   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Das Problem liegt hier:
PHP-Code:
mc.rb(); 
Die Funktion "rb" (was auch immer das ist) kannst du erst einen Frame später aufrufen, da Flash erst dann in die Timeline des attachten MCs "geguckt" hat.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 27-02-2008, 14:36   #5 (permalink)
Neuer User
 
Benutzerbild von xDevLars
 
Registriert seit: Feb 2008
Ort: Münsterland
Beiträge: 40
Hi,

mc.rb(); bzw mc.Frage(); hatte ich eingebaut, damit er mir erst den MC aufruft, die größe ermittelt und dann weiter macht.
Aber wie gesagt das klappt so nicht. Auch nicht wenn ich die Function mc.rb(); weglasse.

PHP-Code:
function Frage() {
    
Frage_ta.setSize(20060); 
    
Frage_ta.borderStyle "none"
    
Frage_ta.wordWrap true
    
Frage_ta.editable false
    
Frage_ta.text "Vorwahlen in Wisconsin und Hawaii Obama siegt zum zehnten Mal in Folge";

Es scheint so zu sein, das er die MC's schneller darstellt als das er die komplette größe ermittel hat. Denn die MC's haben ja keinen Inhalt ausser ActionScript.....
Oder ich bin zu doof....

Gruß

derLars
xDevLars ist offline   Mit Zitat antworten
Alt 27-02-2008, 14:48   #6 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Mal so probiert?
PHP-Code:
var movies:Array = new Array("Frage_ta""rb_mc""footer_mc");
var 
startY:Number 10;
var 
abstand:Number 10;
for (var 
i:Number 0i<movies.lengthi++) {
    var 
mc:MovieClip this.attachMovie(movies[i], "movie"+ithis.getNextHighestDepth());
    
mc._x 10;
    
mc._y startY;
    
mc.Frage_ta.setSize(20060);
    
mc.Frage_ta.wordWrap true;
    
mc.Frage_ta.editable false;
    
mc.Frage_ta.text "Vorwahlen in Wisconsin und Hawaii Obama siegt zum zehnten Mal in Folge";
    
startY += mc._height+abstand;

__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 27-02-2008, 15:32   #7 (permalink)
Neuer User
 
Benutzerbild von xDevLars
 
Registriert seit: Feb 2008
Ort: Münsterland
Beiträge: 40
jepp, das Funktioniert!
Aber dann muss ich ja sämtlichen Code doppelt unterbringen und auch pflegen....
für die beiden anderen Mc's dann ja auch.....

ohje, wenn das nur so geht...ist ja blöd

Gruß

derLars
xDevLars ist offline   Mit Zitat antworten
Alt 27-02-2008, 15:36   #8 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Wieso das den nun wieder? Wieso doppelt? Das Script aus den MCs schmeißt du einfach raus.
PHP-Code:
var movies:Array = new Array("Frage_ta""rb_mc""footer_mc");
var 
startY:Number 10;
var 
abstand:Number 10;
for (var 
i:Number 0i<movies.lengthi++) {
    var 
mc:MovieClip this.attachMovie(movies[i], "movie"+ithis.getNextHighestDepth());
    
mc._x 10;
    
mc._y startY;
    
mc.movies[i].setSize(20060);
    
mc.movies[i].wordWrap true;
    
mc.movies[i].editable false;
    
mc.movies[i].text "Vorwahlen in Wisconsin und Hawaii Obama siegt zum zehnten Mal in Folge";
    
startY += mc._height+abstand;

Oder warum nennst du die Textfelder nicht einfach alle "txt" oder so. Ist ja egal, da sie in unterschiedlichen MCs stecken.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 27-02-2008, 15:51   #9 (permalink)
Neuer User
 
Benutzerbild von xDevLars
 
Registriert seit: Feb 2008
Ort: Münsterland
Beiträge: 40
ok, aber wenn ich jetzt sage, das in den MC Frage_ta nur ein As mit dem Inhalt

PHP-Code:
this.createTextField("Frage_ta"110102000)
    
Frage_ta.borderStyle "none";
    
Frage_ta.wordWrap true;
    
Frage_ta.editable false;
    
Frage_ta.autoSize true;
    
Frage_ta.text Frage;//_global.Frage = _root.Frage; Hier hole ich mir den Text aus der DB 
ist. Also mehr ist in dem MC nicht drin.....
Wenn ich das AS aus Frage_ta nehme, dann ist der Text nicht mehr in der SWF.
Die MC's sollten nur dazu dienen das jeweilige AS aufzunehmen um dann mit dem Script im Hauptfilm diese sauber zu positionieren.

Gruß

derLars
xDevLars ist offline   Mit Zitat antworten
Alt 27-02-2008, 15:57   #10 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
wie auch immer.

die grösse des attachten mc's ist die grösse von dessen frame 1. also von allem grafischen zeugs, das auf frame 1 liegt.
flash kann nicht 'wissen', ob folgende frames grösser sind, oder ob via programm noch was dazukommt.

eine notlösung wäre z.b., wenn du in den frame ein rechteck mit maximaler grösse reinzeichnest. dessen farbe kann ja alpha=0 sein.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (27-02-2008 um 15:59 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 27-02-2008, 20:24   #11 (permalink)
Neuer User
 
Benutzerbild von xDevLars
 
Registriert seit: Feb 2008
Ort: Münsterland
Beiträge: 40
Hallo nochmal,

ok, das habe ich nun alles verstanden.....

ABER, dann frage ich mal anders. Wie würdet Ihr hergehen um nun die Elemente auf der Bühen zu positionieren?
Im Prinzip ist das ganz einfach:
Kopf: eine Frage der Länge n
RadioButtons: min 2, max 10
footer: btn

nix anders als das hier: http://www.vevs.com/flashpoll/

Wichtig dabei ist, das die Frage und die RadioButtons erst zur Laufzeit ermittelt werden. Also ich weis vorher nicht, wie lang ist die Frage oder wieviele RB wird es geben (Daten kommen aus DB). Deswegen muss die Höhe der Elemente ermittelt werden und dann positioniert werden.

Hat da evtl. noch mal jemand die Geduld oder nen Rat?
Soll ich nen neuen Thread auf machen damit?

Gruß

derLars
xDevLars ist offline   Mit Zitat antworten
Alt 28-02-2008, 08:15   #12 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
Zitat:
Zitat von xDevLars Beitrag anzeigen
Also ich weis vorher nicht, wie lang ist die Frage oder wieviele RB wird es geben
gegenfrage, woher soll es dann der computer wissen?

nimm eine minimalhöhe
und wenn du inhalte einpflegst DANN muss halt alles rücken.

und wenn du das nachträgliche rücken nicht anzeigen willst, dann kannst du alles auf _visible=false schalten, so lange, bis alle informationen vorliegen.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (28-02-2008 um 08:17 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 28-02-2008, 10:01   #13 (permalink)
Neuer User
 
Benutzerbild von xDevLars
 
Registriert seit: Feb 2008
Ort: Münsterland
Beiträge: 40
ok, auch das habe ich verstanden.

Hast Du evtl. einen Ansatz, wie ich vorgehen muss, um erst die MC zu laden und dann die Positionen mit rücken zu finden?

Gruß

derLars
xDevLars ist offline   Mit Zitat antworten
Alt 28-02-2008, 10:48   #14 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
was brauchst du da noch einen ansatz?

wenn noch was dazukommt, dann müssen alle darunter liegenden runterrücken.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 28-02-2008, 11:10   #15 (permalink)
Neuer User
 
Benutzerbild von xDevLars
 
Registriert seit: Feb 2008
Ort: Münsterland
Beiträge: 40
[QUOTE=hgseib;1737445]
und wenn du inhalte einpflegst DANN muss halt alles rücken.
QUOTE]

Also habe ich das richtig verstanden, ich bringe zuerst die Mc's mit dem Script:

PHP-Code:
var movies:Array = new Array("Frage_ta""rb_mc""footer_mc");
var 
startY:Number 10;
var 
abstand:Number 10;
for (var 
i:Number 0i<movies.lengthi++) {
  var 
mc:MovieClip this.attachMovie(movies[i], "movie"+ithis.getNextHighestDepth());
  
mc._x 10;
  
mc._y startY;
  
startY += mc._height+abstand;


auf die Bühne und danach rücke ich die dann an die richtige stelle?
wie rücke ich denn? siehe anlage wie es jetzt aussieht
Angehängte Dateien
Dateityp: zip vote.zip (41,2 KB, 2x aufgerufen)
xDevLars 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 17:07 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele