Probleme mit Film in Film

grafixxer

Grünschnabel
Hallo Zusammen,

als erstes muß ich vorausschicken, dass ich Flash-Einsteiger bin und erst vor ein paar Tagen begonnen habe mich mit Action-Script zu beschäftigen.

Also ich habe folgendes Problem:

Ich möchte in einem Fenster eine Reihe Thumbnails von Sceenshots gestalten, die ich mit Vor- und Zurückbutton scrollen kann. Die Thumbnails sollen als Schaltflächen genutzt werden zu einem externen Link. Das ganz soll dann so aussehen:

screenshot_fenster.jpg

(Die Thumbnails von Sceenshots sind hier nur symbolisch als Kasten angedeutet)

Hierzu habe ich zwei Filme angelegt:

a) screen.swf
b) fenster.swf

Im screen.swf habe ich die Thumbnails als Schaltflächen angelegt und mit folgendem Script versehen:

Code:
btn_1.onRelease = function(){
    getURL("http://www.ebay.de", "_blank");
}
btn_2.onRelease = function(){
    getURL("http://www.amazon.de", "_blank");
}

etc.

Klappt soweit auch wunderbar.

In fenster.swf ist die schwarze Leiste mit den beiden Pfeilen, die ich ebenfalls als Schaltfläche angelegt und mit folgendem Script versehen habe:

Code:
btn_re.onPress = function() {
	screen._x += 150;
}

btn_li.onPress = function() {
	screen._x -= 150;
}

Dann habe ich screen.swf in fenster.swf importiert (Instanzname = screen).

Das Ergebnis ist, ich kann mit den beiden Pfeiltasten die Thumbnails nach rechts und links wandern lassen, aber die Links von screen.swf funktionieren jetzt nicht mehr.

Kann mir einer sagen, was ich falsch mache?

Außerdem würde ich mich über einen Tipp freuen, wie ich ein Stop am jeweiligen Ende der Thumbnail-Leiste einbauen könnte.
 
Hi,

Dann habe ich screen.swf in fenster.swf importiert (Instanzname = screen).
Das Ergebnis ist, ich kann mit den beiden Pfeiltasten die Thumbnails nach rechts und links wandern lassen, aber die Links von screen.swf funktionieren jetzt nicht mehr.

Kann mir einer sagen, was ich falsch mache?

du mußt btn1 usw dann über den jeweiligen container clip (screen) ansprechen da sonst der Pfad dahin ja nicht mehr stimmt.

Code:
screen.btn1.onRelease = function(){..}

Außerdem würde ich mich über einen Tipp freuen, wie ich ein Stop am jeweiligen Ende der Thumbnail-Leiste einbauen könnte.

Das kannst du mit einer einfachen if-else Abfrage machen, indem du zB sagst :
Code:
btn_li.onPress = function() {
//Wenn screen x Position  größer als -500 ist dann verschieben
if(screen._x> -500){
	screen._x -= 150;
}else{
//...ansonsten bei -500 bleiben
screen._x = -500;
}
}

Gruß
 
@Denniz
Danke für Deine Antwort. Mein Fehler war noch von viel anderer Natur. Ich hatte die externe swf in die fla des Haupfilmes importiert (Datei > Importieren). Jetzt habe ich das ganze folgendermaßen gelöst:

Im Hauptfilm (fenster.swf) habe ich folgendes Script:

Code:
this.createEmptyMovieClip("screen", this.getNextHighestDepth());
// ein neuer Movieclip mit dem Instanznamen screen wird erzeugt
screen.loadMovie("screen.swf", 1);
// in die Instanz screen wird die externe screen.swf geladen
btn_re.onPress = function() {
	screen._x -= 160;   
} 
btn_li.onPress = function() {
	screen._x += 160;   
}

So funktionieren jetzt auch die Links im screen.swf


Das kannst du mit einer einfachen if-else Abfrage machen, indem du zB sagst :
Code:
btn_li.onPress = function() {
//Wenn screen x Position  größer als -500 ist dann verschieben
if(screen._x> -500){
	screen._x -= 150;
}else{
//...ansonsten bei -500 bleiben
screen._x = -500;
}
}

Ich möchte aber nicht auf einmal zu –500 springen, sondern in 150 px Schrittweise (pro Mausclick). Nur am Ende soll es nicht weiter gehen.
 
Hi,

Denniz hat dir doch den Code gepostet. Wenn deine Instanz an einer größeren X-Position wie -500 px ist, dann verschiebt sich diese um -150px.
Ich versteh das so, wenn die aktuelle Positon x = 0 px ist, dann wäre die Position nach einem Mausklick x = - 150px. Beim nächsten Mausklick x= -300, beim nächsten Mausklick x= -450 und beim nächsten Mausklick x=-600.
Beim nächsten Mausklick ist die Bedingung

if(screen._x> -500){

nicht mehr gegeben, weshalb screen._x auf -500 zurückspringt. Die Else Anweisung wird durchlaufen.

else{
//...ansonsten bei -500 bleiben
screen._x = -500;


Das heißt im Umkehrschluss, wenn screen_x am Anfang schon z.B. bei Position
-800 erscheint, so springt er sofort auf die Position -500.
 
sorry, Ihr habt Beide recht. Ich hatte einen Vorzeichenfehler gemacht. In meinem Fall würde es dann so richtig aussehen:

Code:
btn_re.onPress = function() {
	if (screen._x>-480) screen._x -= 160; 
    else screen._x = -480;   
} 
btn_li.onPress = function() {
	if (screen._x<0) screen._x += 160; 
    else screen._x = 0;   
}

Das funktioniert jetzt richtig klasse. Ich danke Euch ganz herzlich für diese Hilfe.
 
Problem: Film in Film, Teil 2

Ja, ich schon wieder :-(. Nach dem mein Problem im Beitrag „Probleme mit Film in Film“ gelöst war, wollte ich das ganze etwas ausbauen. Nun haben sich aber wieder neue/alte Probleme ergeben :(.

Ich habe nun drei Filme:

a) film.swf (Hauptfilm mit dem Script), Größe 960 x 580 Pixel
b) karte.swf (eine Landkarte), Größe 1800 x 1400 Pixel
c) navwin.swf (Navigationsfenster mit Button), Größe 960 x 580 Pixel

Ziel soll sein, dass man mit Hilfe der Button im Navigationsfenster die Karte nach rechts/links und nach oben/unten bewegen kann.

Hier das Script vom Hauptfilm:

PHP:
this.createEmptyMovieClip("karte", this.getNextHighestDepth()); 
karte._x = -420; 
karte._y = -442; 
karte.loadMovie("karte.swf", 1); 
this.createEmptyMovieClip("nav", this.getNextHighestDepth()); 
nav.loadMovie("navwin.swf", 2); 

nav.btn_o.onPress = function() { 
    if (karte._y< 0) karte._y += 100;  
    else karte._y = 0;    
}  
etc.

Aber der Button mit dem Instanznamen z.B. „btn_o“ (Karte soll sich um 100px nach unten bewegen) funktioniert jetzt nicht mehr.

Wo liegt der Hund begraben?
 

Neue Beiträge

Zurück