Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-09-2005, 14:54   #1 (permalink)
Ohne Worte
 
Benutzerbild von Masterpi
 
Registriert seit: Jul 2004
Ort: Berlin
Beiträge: 472
Question SwapDepth, getDepth und Button/wie realisiert man das?

Wenn man auf einen Button drückt (der Button ist ein mc) dann soll ein movieclip, der einen Tween beinhaltet aus der Bibliothek werden. Drücke ich auf einen anderen Button, soll ein weiterer mc über den alten geladen werden, ohne diesen jedoch zu löschen (also durch swapDepth).

Das Problem ist, dass ich in diesem Forum immer nur Beiträge finde, wo die Movieclips, die sich durch swapDepth überlagern sollen, immer schon auf der Bühne vorhanden sind und diese Movieclips die Button selbst sind. Also habe ich mir gedacht, ich bau mir nen Script = Fehlanzeige. Denn ich hab kein Plan, wie ich rauskriegen soll, auf welcher Ebene der aktuell geladene mc überhaupt liegt um den nächsten dann eine Ebene Höher laden zu können.

Also eigentlich brauche ich sowas =

button1 onPress = load mc1
button2 onPress = load mc2 über mc1 durch swapDepth
button3 onPress = load mc3 über mc2 " "
wieder button1 onPress = load mc1 über mc 3

Für Lösungsansätze wäre ich wirklich dankbar. Prinzipiell weiß ich, dass ich swapDepth und getDepth brauche. Ich habe halt nur keine Ahnung, wie ich das in AS umsetzten soll und vor allem, wie ich das Button kombiniere, da ich dazu nirgends was gefunden habe!!!

VIELEN DANK

mfg Masterpi
__________________
Wie kommt mein Öl unter deinen Boden?
Masterpi ist offline   Mit Zitat antworten
Alt 21-09-2005, 16:46   #2 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Variable anlegen in der du immer die aktuellste Tiefe speicherst, oder in deiner Flashhilfe mal nach MovieClip.getNextHighestDepth gucken.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 21-09-2005, 16:52   #3 (permalink)
Ohne Worte
 
Benutzerbild von Masterpi
 
Registriert seit: Jul 2004
Ort: Berlin
Beiträge: 472
Ja nextHighestDepth habe ich auch zuerst als Lösungsansetz gehabt, aber dann habe ich swapDepth im Forum entdeckt und dachte mir, dass man damit besser fährt. Aber danke, dann muss ich jetzt nur mal suchen, wie man die aktuelle Tiefe in einer Variable speichert und diese wieder ausliest!!!

für weitere Vorschläge wäre ich natürlich wie immer verbunden.

bis dann
__________________
Wie kommt mein Öl unter deinen Boden?
Masterpi ist offline   Mit Zitat antworten
Alt 21-09-2005, 17:06   #4 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Zitat:
Aber danke, dann muss ich jetzt nur mal suchen, wie man die aktuelle Tiefe in einer Variable speichert und diese wieder ausliest!!!
??
PHP-Code:
// aktuelle Tiefe
var 0;

this.createEmptyMovieClip"mc"d++);
trace"aktuelle Tiefe= " ); 
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 21-09-2005, 17:12   #5 (permalink)
Ohne Worte
 
Benutzerbild von Masterpi
 
Registriert seit: Jul 2004
Ort: Berlin
Beiträge: 472
Ahhh wunderbar bedanke mich recht herzlich bei dir!!!!
Das ist ja wie Ostern hier

bis dann
__________________
Wie kommt mein Öl unter deinen Boden?
Masterpi ist offline   Mit Zitat antworten
Alt 21-09-2005, 17:17   #6 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Zitat:
Zitat von Masterpi
Das ist ja wie Ostern hier
Oster wäre suchen und finden. Hier ist meist Weihnachten
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 21-09-2005, 17:59   #7 (permalink)
Ohne Worte
 
Benutzerbild von Masterpi
 
Registriert seit: Jul 2004
Ort: Berlin
Beiträge: 472
Stimmt Nikolaus läge vielleicht noch ein bisschen näher
__________________
Wie kommt mein Öl unter deinen Boden?
Masterpi ist offline   Mit Zitat antworten
Alt 09-01-2006, 11:13   #8 (permalink)
Neuer User
 
Benutzerbild von Compumaster
 
Registriert seit: Dec 2005
Beiträge: 73
Question

hi folks,

wie binde ich den swapdepth am besten ein?
mein folgendes geht leider nicht:

function main(){
pc = new PictureChangerClass( 1000, 500, 10);

pc.PictureChanger_mc.swapDepth(0);

pc.setPicList(["1.jpeg", "2.jpeg", "3.jpeg", "4.jpeg"], "../HG_BILDER/");
pc.createUI( _root, "PictureChanger_mc", 1, 10, 10);
//

ich will ja die anzeige auf 0 laufen lassen, da die bilder im moment das ganze verblenden. aufgerufen wird das ganze in einem leeren frame (ganz oben in der zeitleiste), dann wird wieder ein AS aufgerufen usw. ich dachte mir schon das ich den AS-Frame mal nach ganz unten lege, haut aber auch nicht hin .

plz hlp,thx
Compumaster ist offline   Mit Zitat antworten
Alt 09-01-2006, 11:40   #9 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Der Befehl heißt "swapDepths()" und wie man den verwendet kannst du in Flash selber nachlesen.
Einfach mal die F1-Taste drücken und dann nach dem Befehl suchen...

Kleiner Tipp, guck dir auch mal selber deinen geposteten Code an, kann ja nicht sein das alle anderen die dir helfen das tun und du hast keine Ahnung.
PHP-Code:
function main(){
pc = new PictureChangerClass100050010);

// hier ist der Befehl falsch....
//pc.PictureChanger_mc.swapDepth(0);

pc.setPicList(["1.jpeg""2.jpeg""3.jpeg""4.jpeg"], "../HG_BILDER/");
// hier wirde doch erst der mc erstellt der die Tiefe tauschen soll
// und die 1 ist die Tiefe des mc's also braucht man keinen swapDepths sondern setzt gleich 0 anstatt 1....
// pc.createUI( _root, "PictureChanger_mc", 1, 10, 10);
pc.createUI_root"PictureChanger_mc"01010); 
__________________
ERROR: Signature is too large

Geändert von rendner[i] (09-01-2006 um 11:45 Uhr)
rendner[i] ist offline   Mit Zitat antworten
Alt 09-01-2006, 11:45   #10 (permalink)
Neuer User
 
Benutzerbild von Compumaster
 
Registriert seit: Dec 2005
Beiträge: 73
hi,
da steht leider nichts anwendbares.
ist denn meine überlegung da flash so wie ich es gepostet habe?
ich kriegs nicht raus, habe alles ausprobiert. ich konnte die bilder schon auf andere ebenen darstellen. das jene aber im hintergrund liegen klappt nicht.
im flash_MC habe ich ganz normale menües etc. im ersten frame oben ist der as-aufruf etc.
im as muss ich doch irgendwie den swap einbinden und zwar an der stelle wo er das leere mc-feld erzeugt oder nicht? und da beiße ich mich gerade aus ohne erfolg.

das mit den pc.createUI( _root, "PictureChanger_mc", 0, 10, 10); wäre ja auch normale, aber da spricht er nichts drauf an. der fehler muss woanders sein..

Geändert von Compumaster (09-01-2006 um 11:48 Uhr)
Compumaster ist offline   Mit Zitat antworten
Alt 09-01-2006, 11:53   #11 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Vielleicht solltest du dir mal die Function "createUI" angucken um zu verstehen was diese macht damit dein Vorhaben auch fruchtet.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 09-01-2006, 11:59   #12 (permalink)
Neuer User
 
Benutzerbild von Compumaster
 
Registriert seit: Dec 2005
Beiträge: 73
was das script macht habe ich schon verstanden...
warum aber die ebene nicht zu ändern ist, ist mir schleierhaft, da über die 1te koordi im creatUI nichts mit den ebenen zu ändern ist.
drum dachte ich das ich das explizit mit einer funktion (swap...) beheben kann und frage nach.
es läuft ja auch sonst alles bestens, nur das die eingebunden bilder alles verdecken. im ausgabefenster sehe ich das sie es auf dem _level0 ausstrahlen.?!?

und bitte mal ne hilfe hierzu, danke..

in der fla sind nur ein paar buttons und grafiken, die ich jetzt aber nicht posten kann da es für einen kunden ist.
die eigentliche arbeit und der erste aufruf ist mit dem AS verbunden und fängt im ersten obersten frame mit folgendem an:
#include "../include/main.as"

hier die main:
/*
PictureChanger main
@author
@version 1.0
@lastChange
*/

#include "../include/com.qlod.app.LoaderClass.as"

#include "../include/WrapListClass.as"

#include "../include/easing_equations.as"

#include "../include/TransitionClass.as"

#include "../include/TransitionAlphaCrossfadeClass.as"

#include "../include/TransitionRotateAndScaleClass.as"

#include "../include/TransitionRandomDotsClass.as"

#include "../include/TransitionEvenOddStripesClass.as"

#include "../include/TransitionSqueezeClass.as"

#include "../include/PictureChangerClass.as"

//--------------------------------------------------------------
// Das Hauptprogramm
// Erzeuge eine Instanz der neuen Klasse,
// initialisiere sie und starte den Bilderwechsler

var XMLdaten = new XML();
XMLdaten.ignoreWhite = true;

XMLdaten.load("../XML/textfelder_daten.xml");

XMLdaten.onLoad = function(success) {
Area1Row1.Text = XMLdaten.firstChild.childNodes[0].attributes.title;
Area1Row2.Text = XMLdaten.firstChild.childNodes[0].attributes.text1;
Area1Row3.Text = XMLdaten.firstChild.childNodes[0].attributes.text2;
Area1Row4.Text = XMLdaten.firstChild.childNodes[0].attributes.more;
Area2Row1.Text = XMLdaten.firstChild.childNodes[1].attributes.title;
Area2Row2.Text = XMLdaten.firstChild.childNodes[1].attributes.text1;
Area2Row3.Text = XMLdaten.firstChild.childNodes[1].attributes.text2;
Area2Row4.Text = XMLdaten.firstChild.childNodes[1].attributes.more;
Area3Row1.Text = XMLdaten.firstChild.childNodes[2].attributes.title;
Area3Row2.Text = XMLdaten.firstChild.childNodes[2].attributes.text1;
Area3Row3.Text = XMLdaten.firstChild.childNodes[2].attributes.text2;
Area3Row4.Text = XMLdaten.firstChild.childNodes[2].attributes.more;
Area4Row1.Text = XMLdaten.firstChild.childNodes[3].attributes.title;
Area4Row2.Text = XMLdaten.firstChild.childNodes[3].attributes.text1;
Area4Row3.Text = XMLdaten.firstChild.childNodes[3].attributes.text2;
Area4Row4.Text = XMLdaten.firstChild.childNodes[3].attributes.more;
Area5Row1.Text = XMLdaten.firstChild.childNodes[4].attributes.title;
Area5Row2.Text = XMLdaten.firstChild.childNodes[4].attributes.text1;
Area5Row3.Text = XMLdaten.firstChild.childNodes[4].attributes.text2;
Area5Row4.Text = XMLdaten.firstChild.childNodes[4].attributes.more;
Area6Row1.Text = XMLdaten.firstChild.childNodes[5].attributes.title;
Area6Row2.Text = XMLdaten.firstChild.childNodes[5].attributes.text1;
Area6Row3.Text = XMLdaten.firstChild.childNodes[5].attributes.text2;
Area6Row4.Text = XMLdaten.firstChild.childNodes[5].attributes.more;
};


function main(){
pc = new PictureChangerClass( 1000, 500, 20);



pc.setPicList(["1.jpeg", "2.jpeg", "3.jpeg", "4.jpeg"], "../HG_BILDER/");
pc.createUI( _root, "PictureChanger_mc", 1, 10, 10);
//
// in das Array können weitere Transitionklassen eingefügt werden
pc.setTransitions([
new TransitionSqueezeClass(),
new TransitionEvenOddStripesClass(),
new TransitionRandomDotsClass(),
new TransitionAlphaCrossfadeClass(),
new TransitionRotateAndScaleClass()
])
pc.start();
}
//
main();

hier noch die changerclass

/*
PictureChangerClass
@author
@version 1.0
@lastChange
*/

// Erzeuge Instanz der Klasse
o = _global.PictureChangerClass = function(){
if(arguments[0] == 'NO_INIT') return;
this.init.apply( this, arguments);
}
//
o = o.prototype;
//
// initialisiere die Instanzeigenschaften
// und den Loader
o.init = function( showtimeMs, transitionMs, transitionStepMs){
this.showtimeMs = showtimeMs;
this.transitionMs = transitionMs;
this.transitionStepMs = transitionStepMs;
//
this.ui = null;
this.actPic = 0;
this.picList = new WrapListClass();
//
this.loader = new LoaderClass();
this.loader.setParamStyleObject();
this.loader.setMinSteps(5);
this.loader.addListener( this);
}
//
// erzeuge die Movieclips für die Anzeige
o.createUI = function( base, name, depth, x, y){
this.ui = base.createEmptyMovieClip( name, depth);
this.ui.createEmptyMovieClip("pic0", 0);
this.ui.createEmptyMovieClip("pic1", 1);
this.setPos( x, y);
}
//
// positioniere die Anzeige
o.setPos = function( x, y){
this.ui._x = x;
this.ui._y = y;
}
//
// intialisiere die Bilderliste
o.setPicList = function( picList, directory){
this.picList.init( picList);
this.directory = directory;
}
//
o.setTransition = function(){
this.transition = this.transitions.get();
this.transitions.next();
this.transition.setTransitionCompleteHandler( this);
}
//
o.setTransitions = function( transitions){
this.transitions = new WrapListClass( transitions);
}
//
// liefere den Mc, der aktuell sichtbar ist
o.getActPicMc = function(){
return this.ui["pic" + (this.actPic % 2)];
}
//
// liefere den Mc, der aktuell unsichtbar ist
o.getNextPicMc = function(){
return this.ui["pic" + ((this.actPic + 1) % 2)];
}
//
//
o.exchangePics = function(){
++this.actPic % 2;
}
//
// wird vom Loader aufgerufen, wenn das Laden beginnt
// das neue Bild soll zunächst unsichtbar sein
o.onLoadStart = function( loaderObj){
this.getNextPicMc()._alpha = 0;
}
//
// wird vom Loader während des Ladens aufgerufen
// zeigt eine feine rote Linie als Ladeanzeige
o.onLoadProgress = function( loaderObj){
this.ui.clear();
this.ui.moveTo(0,-1);
this.ui.lineStyle(0, 0xff0000);
this.ui.lineTo( Math.floor(loaderObj.getStepPercent()), -1);
}
//
// wird vom Loader aufgerufen, wenn das Laden endet
// die rote Linie wird gelöscht und die Blende gestartet
// wenn das Bild nicht geladen werden konnte, wird
// die nächste Url geladen
o.onLoadComplete = function( success, loaderObj){
this.ui.clear();
//
if( success){
this.setTransition();
this.startTransition();
} else {
this.exchangePics();
this.loadNextPic();
}
}
//
// starte die Anzeigeschleife
o.start = function(){
this.loadNextPic();
}
//
// stoppe die Anzeigeschleife
o.stop = function(){
clearInterval( this.interval);
}
//
// starte die Überblendung
o.startTransition = function(){
this.transition.start( this.getActPicMc(), this.getNextPicMc(), this.transitionMs, this.transitionStepMs);
}
//
// Überblendung ist ferti, start die Warteschleife
o.onTransitionComplete = function(){
this.interval = setInterval( this, "onShow", this.showtimeMs);
}
//
// wird im Interval aufgerufen
// zeige das nächste Bild
o.onShow = function(){
clearInterval( this.interval);
this.loadNextPic();
}
//
// lade das nächste Bild
o.loadNextPic = function(){
this.exchangePics();
this.loader.load( this.getNextPicMc(), this.getPicUrl());
this.picList.next();
}
//
// liefere die komplette Url des nächsten Bilds
o.getPicUrl = function(){
var url = this.directory + this.picList.get();
//trace("getPicUrl " + url);
return url;
}
//
delete o;
//

die includes sind aber auch hier zu finden:
OOP Spiel: Bildübergänge

die restlichen AS sind für die Funktionen FadeIn und FadeOut

Geändert von Compumaster (09-01-2006 um 12:37 Uhr)
Compumaster ist offline   Mit Zitat antworten
Alt 09-01-2006, 12:03   #13 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Na dann poste doch bitte mal in deinem eigenem Thread eine fla, damit man das mal testen kann (auch bitte die as Dateien die Included werden).
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 09-01-2006, 13:04   #14 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Sorry aber ich bau mir das jetzt nicht noch irgendwie nach, kannst du da nicht ein kleines Beispiel posten, das funktioniert?
__________________
ERROR: Signature is too large
rendner[i] 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 08:58 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele