pageflip von iparigrafika

harrry

Erfahrenes Mitglied
Hallo,

mal eine Frage an die Pageflip-Fans unter Euch, um diesen da gehts natürlich. Im Prinzip macht er, was ich will und das ist ja auch schön so. Aber jetzt hakts an einer Stelle: ich würde gern von einer Seite (sagen wir "page2") die danebenliegende Seite (sagen wir "page3") ansprechen. Also auf Knopfdruck etwa einen Text erscheinen lassen. So hab ichs probiert:
PHP:
on (release) { 
       	_root.mainclip.page3.adresse.htmlText = "Test";
       }
"adresse" ist der Bezeichner meines dynamischen Textfelds auf "page3". Aber es geht nicht.

In einem Beitrag von Tobias habe ich gelesen, dass das Problem offenbar darin liegt, dass, wenn man das Ding in einen MC gepackt hat, die Struktur so nicht mehr funktioniert oder so ähnlich - aber ich gebe ja meinen MC ("mainclip") eh an! (Und in "exportierte Seiten" auf Frame 4, Pageflip-Fans wissen, wovon ich rede, hab ich ihm sogar versuchweise einen Bezeichner gegeben).

Aber, wenn ichs recht überlege, sind ja alle Seiten eh schon für AS verknüpft - wie sprech ich denn sowas an?

Kann mir jemand helfen?
 

harrry

Erfahrenes Mitglied
Nicht, dass es funktioniert ;-), aber ich habe mir folgendes überlegt:
PHP:
on (release) {
  	trace("page3 reset");
  	if (_root.getPN(3) == _root.page) {
  		adresse.htmlText = "Text";
  	}
  }
Ist das der richtige Weg?
 

harrry

Erfahrenes Mitglied
Mir ist völlig klar, dass Drängen (es gibt im Deutschen leider nicht das Wort "nagging", das hier perfekt zutrifft) nicht gern gesehen wird, aber Ihr macht Euch keine Vorstellungen, wie dringend mir die Lösung für dieses Problem fehlt... ist denn keiner mit der Pageflip-Sache vertraut? Sorry, dass ich hier rumflipp... :-(
 

Tobias Menzel

Erfahrenes Mitglied
Hi,

na ja - von dieser Komponente lasse ich normalerweise gerne die Finger, weil sie (obwohl mächtig) zu unübersichtlich ist, um sie "mal eben" nachzuvollziehen und zu supporten. Support für komplexere Komponenten sollte man den jeweiligen Urhebern überlassen. ;)

In diesem Pageflip-Menü ist es soweit ich das sehen kann so geregelt, dass nach dem Umblättern die beiden sichtbaren (und die jeweils darunterliegenden) instanziert werden; es befinden sich also nicht sämtliche Seiten zu jeder Zeit adressierbar auf der Bühne.

In der Funktion setPages wird z.B. sobald die rechte Seite angefasst wird die darunterliegende im Objekt "p4" (genauer: pages.p4.page.pf.ph) abgelegt (links ist es p1). Befindet sich die Maus nicht über den Anfassern einer Seite, so sind in p1 und p4 die beiden sichtbaren Seiten zu finden.

Modifikationen, wie Du sie Dir vorstellst, würden daher meiner Meinung nach eine Neukonstruktion (oder zumindest nicht unbeträchtliche Umbauten, die eben ein tieferes Verständnis erfordern) nötig machen.

Vielleicht aber treibt sich ja hier jemand rum, der mit dem Ding mehr Erfahrung hat.

Gruß
.
 

harrry

Erfahrenes Mitglied
Oh - danke für die Antwort!

So tiefgehend modifizieren will ich ja gar nicht, denn es geht mir ja nur darum, von einer (instanzierten) Seite die offen daneben liegende (und also ebenso instanzierte) Seite anzusprechen.

Im Klartext: das "Buch" ist offen, man sieht die Seiten "page2" und "page3" nebeneinander. Links, auf "page2" ist ein button-mc sichtbar und rechts, auf "page3" ein dynamisches Textfeld. Alles was ich nun will, ist, dass ich mit meinem Button das Textfeld adressieren kann - und ich vermute eben, dass das keine Hexerei ist, jedenfalls für Dich.

Ist es nicht einfach so, dass beide Seiten per AS-Verknüpfung auf die Bühne "geholt" werden? Gibts da nicht einen logischen Pfad, nicht über _root, sondern eben eine direkte Zugriffsmöglichkeit auf die danebenliegende Seite (instanziert wär sie ja schon)?
 

Tobias Menzel

Erfahrenes Mitglied
Hi,

die beiden sichtbaren Seiten sind auf jeden Fall instanziert und ansprechbar.

Befindet sich die Maus nicht über den Seiten, so liegt die linke Seite in
Code:
pages.p1.page.pf.ph
und die rechte in
Code:
pages.p4.page.pf.ph
. Beim RollOver links liegt die linke in
Code:
pages.p3.page.pf.ph
und die rechte in
Code:
pages.p4.page.pf.ph
und beim RollOver rechts die linke in
Code:
pages.p1.page.pf.ph
und die rechte in
Code:
pages.p3.page.pf.ph
(es gibt noch einige Ausnahmen wie hardflip und transparente Seiten, aber das erspare ich mir mal ;))

Nachteil der Sache: So wie ich das sehe, werden eben beim rollOver auf den Anfassern alle sichtbaren Seiten neu instanziert: Änderungen, die Du an den Instanzen vorgenommen hast, würden so wieder rückgängig gemacht.

Gruß
.
 

harrry

Erfahrenes Mitglied
Wow - genau das hab ich gebraucht. Probiere es sofort aus!

(Und ja, den von Dir angesprochenen Nachteil hab ich auch schon bemerkt... da kann man wohl nichts machen, der Text verschwindet, sobald man den Anfasser berührt...)
 

harrry

Erfahrenes Mitglied
Oh verflixt:

Ich habe auf meinen Button auf der linken Seite jetzt dieses Skript, das mein Textfeld auf der rechten Seite erreichen soll:
PHP:
on (release) {
        	pages.p4.page.pf.ph.adresse.htmlText = "Test";
        }
Aber noch klappt es nicht.

Meine Frage: sind "p3" und p4" quasi relative Angaben und gelten für jedes offene Doppel (also etwa auch für die offenen Seiten "page8" und "page9") oder ist da jeweils die tatsächliche Seitennummer gemeint? Vermute Ersteres.

Aber trotzdem, der Pfad greift noch nicht, woran könnte es liegen?
 
Zuletzt bearbeitet:

Tobias Menzel

Erfahrenes Mitglied
Was hast Du selbst vorhin über das Pushen von Threads gesagt? Mit Drängeln erreichst Du weniger, als mit Geduld - zumal ich schon gesagt habe, dass ich Fremdkomponenten aus verschiedenen Gründen nicht supporte.

@Topic: Probier mal folgendes (angenommen, Du willst etwas auf Seite 4 ändern):
Code:
	if (p1 == 4) {
		pages.p1.page.pf.ph.pic.meinObjekt.eigenschaft = "foo";
	}
	if (p2 == 4) {
		pages.p2.page.pf.ph.pic.meinObjekt.eigenschaft = "foo";
	}
	if (p3 == 4) {
		pages.p3.page.pf.ph.pic.meinObjekt.eigenschaft = "foo";
	}
	if (p4 == 4) {
		pages.p4.page.pf.ph.pic.meinObjekt.eigenschaft = "foo";
	}
(einzufügen am Ende der Funktion setPages) "meinObjekt" ist hierbei der Instanzname des Objektes, dass Du verändern willst (z.B. ein Textfeld) und "eigenschaft" die gewünschte Eigenschaft (z.B. .htmlText).

Gruß
.