| |||||||
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: Apr 2004 Ort: Augsburg
Beiträge: 20
|
Hallo, ich versuche vergeblich, eine vielzahl von Bildern in einen Container zu laden, welcher eine Maske besitzt. Der Container ist wie folgt aufgebaut und wird via attachMovie eingefügt: Container -> Maske -> innerMC Das AS2 dazu: Code: for (var i = 0; i < total; i++) {
if (!tempcount) {
var tempcount:Number = 0;
}
var image = this.childNodes[0].childNodes[counter + skipSettings].childNodes[0].firstChild.nodeValue;
var clone = _root.container.innerMC.duplicateMovieClip ("innerMC" + tempcount, _root.container.getNextHighestDepth ());
loadMC (i,image,clone);
var theMask = clone._parent.innerMask;
theMask.swapDepths(clone)
clone.setMask ("innerMask");
moveMC (clone,200 * counter,0);
counter++;
tempcount++;
} Vielen vielen Dank! |
| | |
| | #2 (permalink) | |
| Gast
Beiträge: n/a
| Zitat:
Fang mal mit dem setMask an, der Parameter ist kein String, sondern ein Instanzname. Welchen Wert hat "image"? Was macht "loadMC"? Was macht "moveMC"? Wieso nimmst du einen duplicateMovieClip? Liegt der MC denn schon auf der Bühne?
| |
|
| | #3 (permalink) |
| Neuer User Registriert seit: Apr 2004 Ort: Augsburg
Beiträge: 20
|
Sorry, ich habe ewigkeiten nichts mehr in Flash gemacht und versuch mich gerade wieder (unfreiwillig) mit dem schwierigsten aufzufrischen. Ich poste mal das gesamte AS. Sorry ein Wurfgranatenstand, weil sich viel neuwissen mit altwissen verschmisst, und dadurch das viele Funktionen nicht funktionier haben, ist viel Testen dabei ![]() Aber bin dir super Dankbar, das überhaupt drüberschaust, habe angst das ich das ding nicht fertig bekomme. Code: import com.greensock.*;
import com.greensock.easing.*;
var total:Number;
var xml:XML = new XML ();
xml.ignoreWhite = true;
function loadXML (xmlFile) {
xml.load (xmlFile);
xml.onLoad = function (success) {
if (success) {
var setPath = this.childNodes[0].childNodes[0].attributes;
var time = setPath.time;
var speed = setPath.speed;
var colorhover = setPath.colorhover;
var scale = setPath.scale;
var target = setPath.target;
var border = setPath.border;
var breite = setPath.breite;
var hoehe = setPath.hoehe;
var total = xml.firstChild.childNodes.length;
var counter = 0;
var skipSettings = 1;
var zIndex = _root.getNextHighestDepth ();
var startXPos = 0;
var padding = 10;
_global.GetMainMC = attachMovie ("emptyMC", "container", 1);
for (var i = 0; i < total; i++) {
if (!tempcount) {
var tempcount:Number = 0;
}
var image = this.childNodes[0].childNodes[counter + skipSettings].childNodes[0].firstChild.nodeValue;
var clone = _root.container.innerMC.duplicateMovieClip ("innerMC" + tempcount, _root.container.getNextHighestDepth ());
loadMC (i,image,clone);
var theMask = clone._parent.innerMask;
theMask.swapDepths(clone)
clone.setMask ("innerMask");
moveMC (clone,200 * counter,0);
counter++;
tempcount++;
}
}
};
}
function nextPic () {
trace ("der MC = " + _global.GetMainMC);
_global.GetMainMC._x -= 200;
}
function moveMC (mcName, breite, padding) {
var newBreite:Number = breite;
mcName._x += (newBreite + padding);
}
function loadMC (count, url, MC) {
var image = "\"" + url + "\"";
var mcLoader = new MovieClipLoader ();
mcLoader.loadClip (url,MC);
mcLoader.onLoadProgress = function () {
};
mcLoader.onLoadComplete = function () {
scaleIt (MC);
};
}
function scaleIt (mc) {
mc.onEnterFrame = function () {
if (mc._width <= 1) {
} else {
mc._width = 200;
mc._yscale = mc._xscale;
mc._y += (200 / 2) - (mc._height / 2);
delete (mc.onEnterFrame);
}
};
}
function onFinishTween (film):Void {
var zindex = film.getDepth ();
film.swapDepths (zindex - 10);
TweenLite.to (film,0.001,{_alpha:100, _x:0});
film.fm_button.enabled = 1;
}
loadXML ('gallery.xml');
stop (); Jeder Container wird dupliziert. Jeder Container hat den gleichen Inhalt, alle Bilder nebeneinander, mit Mausklick auf einen Button wird einfach das Bild nach "breite" links verschoben. Klingt banal, ist aber für mich schwer zum umsetzen |
| | |
| | #6 (permalink) |
| whatever Registriert seit: May 2008
Beiträge: 419
|
hab jetzt auch nicht den ganzen code studiert aber es ist echt ein schlachtfeld eine fehlerquelle ist schon mal das zuweisen der maske bevor das bild geladen ist, außerdem erstellst du für jedes bild einen neuen moviecliploader und und und...les dich am besten noch mal schlau über den moviecliploader, ist absolute grundlage für ein projekt wie du es vorhast. |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Apr 2004 Ort: Augsburg
Beiträge: 20
|
Sorry, ich schäm mich ja auch dafür wie mein "Wissen" sich zusammenstückelt. Aber wenn solche Projekte nur alle 1-2 Jahre vorkommen, kann man sich vielleicht vorstellen wieso. Das Hauptproblem ist momentan die SetMask. Wobei das wirklich nur der Anfang ist ![]() Ok, ich befolge deinen Rat sehr gerne und schau mir den MovieClipLoader an. |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Feb 2006
Beiträge: 15
| offline funktioniert es / online nicht
hallo, ich habe ebenfalls ein problem, dass das thema "bilder dynamisch laden" betrifft. vor einiger zeit habe ich von einem flasher ein bildlaufband programmiert bekommen, was allerdings nicht so richtig funktioniert. (ich habe ihn natürlich für seine arbeit bezahlt, doch jetzt erreiche ich ihn nicht mehr… )bilder werden per action script dynamisch geladen und als bildlaufband in einer endlosschleife ausgegeben. das script funktioniert offline einwandfrei, doch wenn ich die daten online stelle, werden die bilder, so scheint es, alle an ein und dieselbe position geladen. nach einem refresh des browsers klappt es dann auch online. (siehe test) ich schaffe es zwar, einzelne parameter zu verändern (bildanzahl, ablaufgeschwindigkeit,…), doch den eigentliche fehler finde ich nicht und vor allem verstehe ich ihn auch nicht! Code: var bildanzahl = 10;
// stellen sie die anzahl der bilder hier ein. die bilder müssen durchnummeriert sein.
var i = 1;
// zählervariable.
var pfad = "";
// legen sie den pfad zu den Bildern hier fest.
var abstand = 7;
// legen sie den abstand zwischen den bildern hier fest.
var breite = 3467;
// stellen sie hier die gesamtbreite des laufbandes ein.
var hoehe = 230;
// stellen sie hier die höhe des laufbandes ein.
var gesamtbreite;
// reitenvariable.
var speed = 2;
// stellen sie hier das tempo des laufbandes ein.
maske._width = breite;
// maskenvariable.
maske._height = hoehe;
maske.swapDepths(1000);
this.setMask(maske);
laden = function (){
if (i<=bildanzahl){
this.createEmptyMovieClip('pic'+i, i);
this['pic'+i].loadMovie(pfad+i+'.jpg', 0);
this.onEnterFrame = function(){
this['pic'+i]._x = this['pic'+(i-1)]._x+this['pic'+(i-1)]._width+abstand;
delete this.onEnterFrame;
i++;
laden();
};
}else{
this.gesamtbreite = this._width;
move();
for (k=1; k<=bildanzahl; k++){
{
}
}
}
};
move = function (){
this.onEnterFrame = function(){
speed1 = 1*speed;
for (j=1; j<=bildanzahl; j++) {
var mc = this['pic'+j];
mc._x -= speed1;
if (mc._x>=breite) {
mc._x -= gesamtbreite;
}
if (mc._x<=-mc._width) {
mc._x += gesamtbreite;
}
}
};
};
laden(); wo liegt mein denkfehler? nachdem ich schon viel zeit damit verbracht habe, eine lösung zu finden, hoffe ich auf einen guten tipp oder lösungsansatz. für euch liegt das problem vielleicht auf der hand… vielen dank schonmal |
| | |
| | #9 (permalink) | |
| Gast
Beiträge: n/a
| Zitat:
Ich würde das mit einer Ladefunktion mit einem MovieClipLoader versuchen, der loadMovie ist sowieso veraltet. Und dann nicht in einer for-Schleife alle gleichzeitig laden, sondern hintereinander. Hier mal ein kleiner Ansatz: PHP-Code: | |
|
| | #11 (permalink) | ||
| Neuer User Registriert seit: Feb 2006
Beiträge: 15
|
ich habe deinen ansatz übernommen und ihn anstelle der laden-funktion eingesetzt, den rest des scriptes habe ich beibehalten. und natürlich habe ich die bildbezeichnungen angepaßt. soweit passiert noch nix. Zitat:
Zitat:
muss ich jetzt andere variabeln einsetzen? ich habe versucht, das script irgendwie hinzubiegen, doch bekomme ich noch nichtmals die bilder geladen, geschweige denn die bewegung… (die bilder liegen auf der gleichen ebene wie die flash-datei) ein hilfloser gruß. sabine | ||
| | |
![]() |
| Lesezeichen |
| Stichworte |
| image, load, mask |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Textfeld Dynamisch laden und Maske? | wasi1 | ActionScript 1 | 3 | 26-11-2003 19:08 |
| Bilder automatisch hinter maske laden | garthi | ActionScript 1 | 3 | 21-08-2003 17:17 |
| Bilder dynamisch laden | casio | ActionScript 1 | 3 | 07-08-2003 16:22 |
| dynamisch jpg Bilder laden | pandail | Flash MX | 1 | 19-09-2002 16:03 |
| bilder dynamisch laden | mischer | Flash MX | 2 | 15-06-2002 19:55 |