| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Oct 2005
Beiträge: 37
| Problem mit movieclip._width
Hab da mal wieder ein Problem und komm nicht weiter. In einer Schleife lade ich Bilder in die Bühne: Code: for(var i=0; i<bild_array.length; i++) {
_root["mc"+i] = _root.createEmptyMovieClip("mc0"+i, 1+i);
_root["mc"+i].loadMovie(bild_array[i]);
} Diese Bilder will ich alle auf die gleiche Größe Skalieren, also hab ich das so zu realisieren versucht: Code: for(var i=0; i<bild_array.length; i++) {
_root["mc"+i] = _root.createEmptyMovieClip("mc0"+i, 1+i);
_root["mc"+i].loadMovie(bild_array[i]);
_root["mc"+i]._width=10;
} Meine Vermutung lag darauf, dass es zu Problemen kommt wenn das Bild noch nicht vollständig geladen ist beim Skalieren. Also ahb ich es so versucht: Code: for(var i=0; i<bild_array.length; i++) {
_root["mc"+i] = _root.createEmptyMovieClip("mc0"+i, 1+i);
_root["mc"+i].loadMovie(bild_array[i]);
this._root["mc"+i].onLoad = function ()
{
_root["mc"+i].width=10;
};
} Hab mir gedacht das liegt daran dass er schon geladen hat wenn die funktion definiert wird oder so. Was mich dann verblüffte und volkommen aus dem Konzept warf war, dass eine skalierung mit _xscale funktioniert: Code: for(var i=0; i<bild_array.length; i++) {
_root["mc"+i] = _root.createEmptyMovieClip("mc0"+i, 1+i);
_root["mc"+i].loadMovie(bild_array[i]);
_root["mc"+i]._xscale=10;
} Kann mich mal bitte wer aufklären und mir da irgendwie helfen? |
| | |
| | #2 (permalink) |
| ActionStripper Registriert seit: Nov 2001 Ort: Oldenburg
Beiträge: 3.275
|
wenn du deinen MC erstellst, in den das bild geladen werden soll, hat dieser noch keine ausmaße. du kannst ihm deshalb auch keine pixelweite angeben. eine relative skalierung kannst du ihm aber trotzdem geben, selbst wenn er noch kein einziges pixel breit ist. sofern für flash klar ist, daß der movieclip auf 10% der originalgröße stehen soll, wird auch alles, was später noch in dem movieclip entsteht nur ein zehntel so breit sein, wie es eigentlich gehört. und hier setzen wir an: das bild wird erst in den movieclip geladen, nachdem du bereits die breite angegeben hast. das hast du schon richtig vermutet. und mit der onLoad-funktion kannst du soweit ich weiß nicht feststellen, ob das bild fertig geladen wurde, wenn du es mit loadMovie lädst. mein vorschlag für eine einfache lösung: Code: for(var i=0; i<bild_array.length; i++) {
_root["mc"+i] = _root.createEmptyMovieClip("mc0"+i, 1+i);
_root["mc"+i].loadMovie(bild_array[i]);
this._root["mc"+i].onEnterFrame = function ()
{
if (this._width >1){
this._width = 10;
delete this.onEnterFrame
}
};
} du hast den unterstrich bei "width" in deinem mittleren beispiel vergessen.
__________________ Design ist AUCH Geschmackssache. |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Oct 2005
Beiträge: 37
|
Hm, das führt mich direkt zu 'nem neuen Problem. ich hab jetzt: Code: for(var i=0; i<bild_array.length; i++) {
this._root["mc"+i] = _root.createEmptyMovieClip("mc0"+i, 1+i);
this._root["mc"+i].loadMovie(bild_array[i]);
this._root["mc"+i].onEnterFrame = function ()
{
if (this._width >1){
this._width = 10;
//delete this.onEnterFrame;
}
trace("this._width");
};
} Geändert von alpharay (01-11-2006 um 21:12 Uhr) |
| | |
| | #4 (permalink) |
| ActionStripper Registriert seit: Nov 2001 Ort: Oldenburg
Beiträge: 3.275
|
also das kann nun irgendwie nicht sein. das einzige, was flash dir in diesem code tracen kann ist der string "this._width" und zwar buchstabe für buchstabe. die zahl 0 wird flash dir aufgrund dieses scripts nicht ausspucken. mal ne andere frage ... werden die bilder überhaupt geladen? unabhängig davon, ob du die movieclips in der größe veränderst?
__________________ Design ist AUCH Geschmackssache. |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Oct 2005
Beiträge: 37
|
ich brauche echt drignend Hilfe, ich komm einfach nicht weiter. Mein aktueller Code: Code: counter=0;
loadVariables ("3d.txt", this);
this.onData = function ()
{
alleBilder = new Array ();
alleBilder = bildnamen.split (",");
loadPics(alleBilder);
};
function loadPics(bild_array){
for(var i=0; i<bild_array.length; i++) {
this._root["mc"+i] = _root.createEmptyMovieClip("mc0"+i, 1+i);
this._root["mc"+i].loadMovie(bild_array[i]);
this._root["mc"+i].onEnterFrame = function ()
{
trace(this._width);
}
}
} allerdings macht es dabei keinen Unterschied ob ich schreibe Code: this._root["mc"+i].onEnterFrame = function () //Movieclip-Name Code: this._root["mc0"+i].onEnterFrame = function () //Movieclip-Instanz-Name |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |