Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „As2 & As3 Container verschieben sich“

dzign

Noch nicht viel geschrieben

Hi

also ich arbeite seit einer längeren Zeit an einer Seite für einen Kollegen. Aber nachdem ich mit diesem Scroller nicht weiter kam hab ich die Zeit vorerst mit einer anderen Seite überbrückt...

Aber es beschäftigt mich immernoch da ich meinem Kollegen gerne die Seite fertig basteln würde.

Also Ich hab mittlerweiler rausgefunden das der Scroller ohne Probleme funktioniert wenn ich 1. den Text nicht Dynamisch lade sondern in direkt in das Textfeld eingebe ( was für mich aber nicht in frage kommt) oder 2. die Zeile 85, page.page.autosize = true; auf false stelle was mir aber dann den scroller zerhaut....

Hoffe es erbarmt sich jemand und das jemand mir bei diesem Problem helfen kann. Hab die Seite auf das wesentliche reduziert und in CS3 abgespeichert. Dürfte soweit alles einiger masen ordentlich sein.

Hier ist der Link:

Wie gesagt hoff auf eure hilfe.

vielen dank im vorraus.
 

A

ad86

Guest

AW: As2 & As3 Container verschieben sich

Hi,

Soll die Seite komplett aus Flashs sein? Warum dann nicht alles in Flash programmieren? Also ich meine in einem Dokument. Du hast tausende Flash-Dokumente (ok, war eine Hyperbel), da kannst Du doch alles in einem machen, oder?
Und zweitens bis auf "stop();" in einigen MovieClips sollte der Sourcecode ganz oben sein. Du hast Dein Sourcecode teilweise "tief" verschachtelt und da hab nicht mal ich die Lust die Referenzen durchzugehen( von index.fla zu dynamicTextfield.fla, von dort in irgendeinen MovieClip und so weiter, das war jetzt nur ein Beispiel). Wenn Du Deinen Code auf eine Ebene (also die oberste) schreibst, bin >ICH< vielleicht gewillt, mir es nochmal anzugucken, aber so brauche ich eine Stunde um die Abhängigkeiten zu analysieren, und das werde ich nicht tun.
Also Ich hab mittlerweiler rausgefunden das der Scroller ohne Probleme funktioniert wenn ich 1. den Text nicht Dynamisch lade sondern in direkt in das Textfeld eingebe ( was für mich aber nicht in frage kommt) oder 2. die Zeile 85, page.page.autosize = true; auf false stelle was mir aber dann den scroller zerhaut....
Auf welches Dokument bezieht es sich? Du hast ja drei fla-Dokumente mitgegeben. Und dann kannst Du gleich sagen, wie tief ich gehen muss, da Du ja Deinen Sourcecode nicht nur in der obersten Ebene hast.

Mfg ad86
 

dzign

Noch nicht viel geschrieben

AW: As2 & As3 Container verschieben sich

Ja soll alles rein Flash sein. Find es nur mit externen SWF's einfacher zu händeln und für mich übersichtlicher.
Zeile 85. bezieht sich auf den Scroller mit dem Namen dynamicfield im Kontakt ordner ......

Ich poste nochmal die wichtigsten scripts

Scroller script:
PHP:
//Variables for you to change: 
var useAnimation = true; 
t = 10;//scrollingspeed in ms when using animation 
//BETTER NOT CHANGE FROM HERE ON 
import mx.transitions.easing.*; 
import mx.transitions.Tween; 
page.setMask(mask); 
page.page.mouseWheelEnabled = false; 
scrolling = false; 
scroller._y = mask._y; 
//schuiflimiet 
/// 
this.onEnterFrame = function() { 
 
    sb._y = scroller._y; 
    var tween:Tween = new Tween(sb, "_y", Normal.easeInOut, sb._y, scroller._y, t, false); 
 
    //scroll 
a = mask._y; 
b = mask._y+mask._height-scroller._height; 
c = mask._height-scroller._height; 
sl = page._height-mask._height; 
 
scroller._height = mask._height * (mask._height/page._height); 
 
    vp = (scroller._y-a)/c; 
    py = vp*sl; 
    p = Math.round(mask._y-py); 
    if (useAnimation == false) { 
        page._y = p; 
    } else { 
        var tween:Tween = new Tween(page, "_y", Strong.easeOut, page._y, p, t, false); 
 
    } 
    if(page._height < mask._height){ 
        scroller._visible = false; 
    } 
}; 
//Mousewheel 
var mouseListener:Object = new Object() 
///// 
mouseListener.onMouseWheel = function(delta){ 
addy = -delta*10; 
yy = scroller._y; 
  hh = scroller._height; 
if(yy + hh + addy > mask._y + mask._height){  
    addy = mask._y + mask._height - yy - hh; 
} 
if(yy + addy < mask._y){ 
    addy = mask._y - yy; 
} 
if(scroller._visible == true){ 
    scroller._y +=addy; 
} 
} 
Mouse.addListener(mouseListener) 
// 
lv = new LoadVars(); 
 
lv.onLoad = onLoadCallBack; 
 
// send and load variables 
cssStyle = new TextField.StyleSheet(); 
 
cssStyle.load("Xml und script Dateien/Scrollerscripts/ScrollercssSource.css"); 
 
page.page.styleSheet = cssStyle; 
 
//---------------------------------------------------- 
// Load in XML 
//---------------------------------------------------- 
 
xmlSource = new XML(); 
 
xmlSource.ignoreWhite = true; 
 
xmlSource.load("Xml und script Dateien/Scrollerscripts/ScrollerxmlSource.xml"); 
 
xmlSource.onLoad = function(success){ 
 
    if(success){ 
 
        page.page.text = xmlSource; 
 
        page.page.autoSize = true; (ZEile 85.)
 
    } 
}

Kontakt Seiten script ( wie ich den as2 scroller in mein as3 content lade ) :
PHP:
import flash.display.*;  
import flash.net.URLRequest;  
var rect:Shape = new Shape();  
rect.graphics.beginFill(0xFFFFFF);  
rect.graphics.drawRect(2, 2, 266, 370);  
addChild(rect);  
var loaderkontakt:Loader = new Loader();  
loaderkontakt.mask = rect;  
var url:String = "Kontakt/dynamicfield.swf";  
var urlReq:URLRequest = new URLRequest(url);  
loaderkontakt.load(urlReq);  
addChild(loaderkontakt);

Index script ( der teil wie ich dann die Seiten reinlade ):
PHP:
stop(); 
 
import flash.events.MouseEvent; 
import fl.transitions.*; 
import fl.transitions.easing.*; 
import flash.filters.BlurFilter; 
 
current = mainmenu_mc.menuBtn1_btn; 
 
 
mainmenu_mc.menuBtn1_btn.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); 
 
var loader:Loader; 
 
var urlRequest:URLRequest; 
 
var tweens:Array = new Array(); 
 
var currentPage:MovieClip = null; 
 
var nextPage:MovieClip = null; 
 
 
//Diese Funktion wird aufgerufen wenn wir einen Button klicken 
function buttonClicked (event:Event):void { 
 
    loader = new Loader(); 
 
    if (event.target == mainmenu_mc.menuBtn1_btn && this != current) { 
 
            urlRequest = new URLRequest("Home/home.swf"); 
            loader.load (urlRequest); 
            current = mainmenu_mc.menuBtn1_btn; 
    } 
 
    else if (event.target == mainmenu_mc.menuBtn2_btn && this != current) { 
 
        urlRequest = new URLRequest("Bio/bio.swf"); 
        loader.load (urlRequest); 
        current = mainmenu_mc.menuBtn2_btn; 
    } 
 
    else if(event.target == mainmenu_mc.menuBtn3_btn && this != current) { 
 
        urlRequest = new URLRequest("Medien/medien.swf"); 
        loader.load (urlRequest); 
        current = mainmenu_mc.menuBtn3_btn; 
    } 
 
    else if(event.target == mainmenu_mc.menuBtn4_btn && this != current) { 
 
        var url:String = "http://www.myspace.com/sticktheoneandonly"; 
 
    var request:URLRequest = new URLRequest(url); 
    try {            
        navigateToURL(request,"_blank"); // blank öffnet eine neue Seite 
    } 
    catch (e:Error) { 
        // handle error here 
        loader.load (urlRequest); 
        current = mainmenu_mc.menuBtn4_btn; 
    } 
} 
 
    else  {  
 
        urlRequest = new URLRequest("Kontakt/kontakt.swf"); 
        loader.load (urlRequest); 
        current = mainmenu_mc.menuBtn5_btn; 
    } 
 
 
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, fileLoaded); 
 
} 
 
 
function fileLoaded(event:Event):void { 
 
    nextPage = event.target.content; 
 
    if(currentPage != null) { 
        mainmenu_mc.mouseChildren=false; 
        //Tween die derzeitige Seite von Links nach rechts 
        var tweenX:Tween = new Tween(currentPage, "x", Regular.easeOut,  
                        currentPage.x, 500, 1, true); 
 
 
        var tweenAlpha:Tween = new Tween(currentPage, "alpha", Regular.easeOut,  
                        1, 0, 1, true); 
 
 
 
        tweens.push(tweenX); 
        tweens.push(tweenAlpha); 
 
 
        tweenX.addEventListener(TweenEvent.MOTION_FINISH, currentPageGone); 
    } 
 
    else { 
        showNextPage(); 
    } 
} 
 
function showNextPage():void { 
      mainmenu_mc.mouseChildren=true; 
        var tweenX:Tween = new Tween(nextPage, "x", Regular.easeOut,  
                        -200, 0, 1, true); 
 
        var tweenAlpha:Tween = new Tween(nextPage, "alpha", Regular.easeOut,  
                        0, 1, 1, true); 
 
        tweens.push(tweenX); 
        tweens.push(tweenAlpha); 
 
        addChildAt(nextPage,6); 
 
 
        currentPage = nextPage; 
} 
 
function currentPageGone(event:Event):void { 
 
 
    removeChild(currentPage); 
 
 
    showNextPage(); 
}

Danke für eure Mühe

Gruss
 
A

ad86

Guest

AW: As2 & As3 Container verschieben sich

Hi,

also als ich die dynamicField getestet habe, hat folgender Codezeile funktioniert:
Code:
//BETTER NOT CHANGE FROM HERE ON
import mx.transitions.easing.*;
import mx.transitions.Tween;
page.setMask(mask);
page.page.mouseWheelEnabled = false;
scrolling = false;
scroller._y = mask._y;[COLOR="Red"]page.page._height=page.page.textHeight+4;[/COLOR]

Problem ist aber, wenn ich die index.swf ausprobiere, dass Kontakt blinken tut. Kann aber sein, weil ich deine TextXml und CSS-Datei nicht habe.

Und VERMEIDE Großbuchstaben bei deinen Dateien und VORALLEM Leerzeichen wie in dynamicTextfield unten beim Xml Laden: (also dem rot markierten Ordner)
Code:
xmlSource.load("[COLOR="Red"]Xml und script Dateien[/COLOR]/Scrollerscripts/ScrollerxmlSource.xml");


Mfg ad86
 
Zuletzt bearbeitet von einem Moderator:

dzign

Noch nicht viel geschrieben

AW: As2 & As3 Container verschieben sich

Danke erstmal für deine Mühe aber daran liegt es leider nicht.....

der scroller ansich funktioniert ja auch .. wie gesagt das Problem liegt darin das er die Kontakt page nach oben verschiebt ...

dachte erst das es vllt daran liegt wie ich meine Pages in meine Index.swf lade aber ich hab es jetzt mit eins zwei anderen seiten ausprobiert und dort passiert das selbe.....

die Xml und Css dürften aber mit in der rar sein ......
 
A

ad86

Guest

AW: As2 & As3 Container verschieben sich

Hi,

1. stimmen DEine Pfade nicht:

- in dynamicTextField:
nicht
Code:
cssStyle.load("xmlundscriptdateien/scrollerscripts/scrollercsssource.css");
sondern
Code:
cssStyle.load("[COLOR="Red"]../[/COLOR]xmlundscriptdateien/scrollerscripts/scrollercsssource.css");
gleiche bei deiner XML-Datei, übrigens, habe ich die Leerzeichen und so weggelassen, die musst Du wieder einfügen!
- in Kontakt Content5:
nicht
Code:
var url:String = "Kontakt/dynamicfield.swf";
sondern
Code:
var url:String = "dynamicfield.swf";
Schließlich bist Du schon im Ordner Kontakt.
2. KOnatkt oberster Ebene fehlet das stop();

3. Vergiss auch nicht:
Code:
//BETTER NOT CHANGE FROM HERE ON
import mx.transitions.easing.*;
import mx.transitions.Tween;
page.setMask(mask);
page.page.mouseWheelEnabled = false;
scrolling = false;
scroller._y = mask._y;
[COLOR="red"]page.page._height=3150;[/COLOR]
Sonst wirst Du nicht scrollen können. Nun sollte es aber funktionieren. Ich kann zu mindestens Kontakt ansteuern und den Text lesen und das Bild sehen und es auch scrollen. WENN ICH KONTAKT teste. Teste ich die Index schmeißt Flash einen IO_Error-Fehler. *Ironie an*Aber bei Deinem (Wenn es überhaupt Deiner ist) tollen Organisation ist der Code ja leicht durchschaubar. *Ironie aus*

Edit: Gut mittlerweile funktioniert es. Ich weiß zwar nicht, warum der KOntakt immer oben ist, aber einfache Lösung: Du machst Dir eine Boolean-Variable (z.B. contactShowing:Boolean), sobald Du in die Methode buttonClicked kommst setzt Du es auf false. Wenn der Kontakt-Button geklickt wird, setzt Du es auf true.

In Deiner Function showNextPage() fügst Du dann das ein, und es sollte in etwa auf gleicher Höhe sein:

if (contact){
nextPage.y=200;
}

Mfg ad86
 
Zuletzt bearbeitet von einem Moderator:

dzign

Noch nicht viel geschrieben

AW: As2 & As3 Container verschieben sich

mhh also ich hab mir das jetzt mal angeschaut...

aber 1. muss ich sagen "Ja das ist mein Codedurcheinander"

und dein vorschlag ist schonmal eine gute Idee aber geht auch nicht richtig..... wenn ich die Seiten größe ändere liegt die Kontakt seite an einer ganz anderen stelle als die anderen Seiten dann kann ich auch grad meine stage funktion rausschmeißen.....

und wenn ich die pfade so ändere wir du gesagt hast bekomm ich auch nur den iofehler ....

naja aber ich danke dir dafür das du dir die Arbeit gemacht hast .... Muss halt mal schaun wenn ich das nicht sauber gelöst bekomm dann muss ich mich hinsetzen und denn ganzen Sch**** halt nochmal von vorne neu aufsetzen ...

Naja ma sehn


ps: hab grad noch mal ein wenig rumprobiert und der Fehler ist nur sobald ich den Text aus der xml lade ansonsten würde alles gehn nur das laden vom Text zerhaut mir die stage
 
Zuletzt bearbeitet:
A

ad86

Guest

AW: As2 & As3 Container verschieben sich

Hi,

also erstens vergiss den vorherigen Beitrag. Kam dadurch dass ich Kontakt und dynamicTextField getestet habe. Und von dort aus sind die Pfade falsch. Wenn Du die index-swf-datei startest sollte alles ok sein.

Ich hab gerade auch nochmal ausprobiert. Es stimmt zwar dass sein laden des Textes das Aussehen zerstört, aber selbst wenn Du den statischen Text benutzt, ist nicht alles ok. Guck mal ganz genau hin. Du wirst sehen dass der Kontakt IMMER an der falschen Stelle ist. Beim dem statischen Text ist es nur minimal, beim dynamischen Text umso größer. (Versuche einfach immer zwischen Bio und Kontakt hin und her zu klicken, und Du wirst sehen, was ich meine).

Aber sonst habe ich keine Ahnung, warum dieser Anzeigefehler auftritt.
Ich dachte erst, dass die Größe (height, width) der Kontakt.swf anders ist als die Anderen, aber das glaub ich nicht.

Mfg ad86
 

dzign

Noch nicht viel geschrieben

AW: As2 & As3 Container verschieben sich

Stimmt , verschiebt sich auch minimal ....

Es kommt mir so vor als würde die Seite so hoch skaliert werden wie der Inhalt des scrollers ist.... denn wenn ich die Funktion :
PHP:
function resizeHandler(e:Event):void {
if(!page_mc || !stage) return;  
page_mc.x = ((stage.stageWidth / 2) - (page_mc.width /2));
page_mc.y = ((stage.stageHeight / 2) - (page_mc.height / 2));
 if (page_mc.x <= 10) {
  page_mc.x = 10;
 }
 
 else {
  
  trace("no change");
 }
  
 
  if (page_mc.y <= 10) {
  page_mc.y = 10;
 }
 
 else {
  trace("no change");
 }
}
stop();
,welche verhindert das die Seite beim kleiner machen des Browsers aus dem Bild verschwindet, raus nehme dann fliegt die Seite komplett aus dem Bild. Kann man das irgendwie lösen das der Scoller mit der größe angesteuert wird die er haben soll und nicht mit der Gesamten größe des textes den anscheinend liegt es daran???....
 

dzign

Noch nicht viel geschrieben

AW: As2 & As3 Container verschieben sich

??? komm iwie immer noch nicht weiter .....

brauch hilfe ..... waaaaaaa
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
175.158
Beiträge
2.581.874
Mitglieder
67.225
Neuestes Mitglied
Petra
Oben