Pseudorelative Links in .swf dateien

Dieses Thema im Forum "Webentwicklung" wurde erstellt von 2aimless, 26. Oktober 2008 .

Schlagworte:
  1. 26. Oktober 2008
    Der Grund wieso ich mich damit beschäftige:
    Spoiler
    Es gibt eine koreanische Seite zu dem Spiel Aion. Sie ist wunderbar nur sehr langsam für Leute aus Deutschland und Europa. (plaync 아이온 :: 게임소개)
    Deshalb hab ich in mühevoller Kleinarbeit alle files mit URL Snooper rausgefischt und runtergeladen und wollte sie dann auf deutschem Webspace hochladen. (Hab die CommunityCoordinatoren gefragt ob ich das darf)

    Das Problem:

    Ich hab auf der Festplatte alle Dateien in einen Ordner geworfen, weil es mit den relativen Pfaden net klappen wollte. In einem Ordner scheint die index.swf die anderen Dateien scheinbar zu finden. Starte Ich nun die index.swf dann läuft so ziemlich das meiste wie geschmiert. Alle andern .swf dateien werden direkt geladen. - Scheint also relativ verlinkt zu sein -

    Verschiebe ich nun diese Dateien auf den Webspace, dann läd man aber nur die index.swf vom Webspace und den folgenden Inhalt wieder vom ursprünglichen langsamen Server nach. - Also scheinen die links in der index.swf doch statisch zu sein -



    Wieso funktioniert es auf der Festplatte aber nicht auf dem Webspace?
     
  2. 26. Oktober 2008
    AW: Pseudorelative Links in .swf dateien

    Flash kann man decompilen. Änder die Links und recompilier es.
     
  3. 26. Oktober 2008
    AW: Pseudorelative Links in .swf dateien

    Wenn du mir sagst welches Programm zuverlässig decompilen can und mit welchem ich dann die .fla datei öffnen soll klick ich sofort auf den reno button :>
     
  4. 26. Oktober 2008
    AW: Pseudorelative Links in .swf dateien

    [G]Flash Decompiler Download[/G]
    [G]Macromedia Flash Trial Download[/G]
    [G]Google[/G]
     
  5. 26. Oktober 2008
    AW: Pseudorelative Links in .swf dateien

    Danke für die Hilfe. Leider finde ich alles ausser Verweise auf andere .swf dateien.

    http://rapidshare.de/files/40760659/index.swf.html

    ein verweis zu a00.swf müsste drinnstehen aber ich finde ihn nicht.
     
  6. 26. Oktober 2008
    AW: Pseudorelative Links in .swf dateien

    Hau mal die .fla hoch. Hab keinen Decompiler da.
     
  7. 26. Oktober 2008
    AW: Pseudorelative Links in .swf dateien

    Ok hat sich mit dem Link... brauchte ne gecrackte version vom compiler

    Hier die FLA:
    Spoiler
    http://rapidshare.com/files/157686219/index.swf.fla.html



    Es hat sich aber ein anderes Problem ergeben: Die Flash datei ist mit ne Koreanischen Font erstellt.
    Wenn ich jetzt die swf decompiliere dann fehlt das Untermenü bei den Buttons am unteren Rand.

    Bzw ist es da aber keine Zeichen mehr (also nicht zu sehen) und ganz eng linsk angeordnet.

    Original:
    {bild-down: http://www.imgbox.de/users/public/images/r32352z121.png}

    nach Bearbeitung:
    {bild-down: http://www.imgbox.de/users/public/images/q27696t121.png}


    Wie krieg ich diesen Bug raus?


    Ich hab das Gefühl das hier ist dafür verantwortlich aber ich weiss nicht wie ich den Font z.B auf Arial umstelle:
    Code:
    function setTxt(target, spacing, FontName)
    {
     var __reg1 = new TextFormat();
     __reg1.letterSpacing = spacing;
     __reg1.font = FontName;
     target.autoSize = true;
     target.wordWrap = false;
     target.embedFonts = true;
     target.setTextFormat(__reg1);
    }
    Komplettes Actionscript für den Sprite:
    Spoiler
    Code:
    function setTxt(target, spacing, FontName)
    {
     var __reg1 = new TextFormat();
     __reg1.letterSpacing = spacing;
     __reg1.font = FontName;
     target.autoSize = true;
     target.wordWrap = false;
     target.embedFonts = true;
     target.setTextFormat(__reg1);
    }
    function oneDepthOver(oneOver, target)
    {
     if (owner._parent.oneMenu == null) 
     {
     owner._parent.Depth2menuCtrl(1);
     }
     owner["menu_" + owner._parent.oneMenu].btnPlay(false);
     target.btnPlay(true);
     barCtrl(oneOver);
    }
    function oneDepthOut(target)
    {
     if (owner._parent.oneMenu == null) 
     {
     owner._parent.Depth2menuCtrl(0);
     }
     target.btnPlay(false);
     owner["menu_" + owner._parent.oneMenu].btnPlay(true);
     barCtrl(owner._parent.oneMenu);
    }
    function barCtrl(NowOver)
    {
     new mx.transitions.Tween(Depth2_mc, "_x", mx.transitions.easing.Strong.easeOut, Depth2_mc._x, Xpos[NowOver], 23, false);
     new mx.transitions.Tween(Depth2_mc.BG, "_width", mx.transitions.easing.Strong.easeOut, Depth2_mc.BG._width, widthArry[NowOver], 23, false);
     new mx.transitions.Tween(mask_mc, "_x", mx.transitions.easing.Strong.easeOut, mask_mc._x, Xpos[NowOver], 23, false);
     new mx.transitions.Tween(mask_mc, "_width", mx.transitions.easing.Strong.easeOut, mask_mc._width, widthArry[NowOver], 23, false);
     new mx.transitions.Tween(Depth2_mc.Blank_mc, "_x", mx.transitions.easing.Strong.easeOut, Depth2_mc.Blank_mc._x, 0 - XposArry[NowOver - 1] + 15, 23, false);
    }
    function twoDepthOver(oneOver, twoOver, target)
    {
     var __reg1 = target._parent["menu_" + String(owner._parent.oneMenu - 1) + String(owner._parent.twoMenu - 1)];
     if (owner._parent.oneMenu == null) 
     {
     owner._parent.Depth2menuCtrl(1);
     }
     new mx.transitions.Tween(__reg1.text_mc, "_alpha", mx.transitions.easing.Regular.easeOut, __reg1.text_mc._alpha, 100, 12, false);
     new mx.transitions.Tween(__reg1.Light_mc, "_alpha", mx.transitions.easing.Regular.easeOut, __reg1.Light_mc._alpha, 0, 12, false);
     __reg1.btnPlay(false);
     target.btnPlay(true);
     new mx.transitions.Tween(target.text_mc, "_alpha", mx.transitions.easing.Regular.easeOut, target.text_mc._alpha, 0, 12, false);
     new mx.transitions.Tween(target.Light_mc, "_alpha", mx.transitions.easing.Regular.easeOut, target.Light_mc._alpha, 100, 12, false);
     owner["menu_" + owner._parent.oneMenu].btnPlay(false);
     owner["menu_" + oneOver].btnPlay(true);
     barCtrl(oneOver);
     if (twoOver == 0 || twoOver == 2 || twoOver == 3) 
     {
     owner.Depth2_mc.Blank_mc.menu_01.btnPlay(false);
     }
     if (owner.Depth2_mc._x < center + 10 && owner.Depth2_mc._x > center - 10) 
     {
     barCtrl(owner._parent.oneMenu);
     }
    }
    function twoDepthOut(oneOver, twoOver, target)
    {
     var nowMenuMC = target._parent["menu_" + String(owner._parent.oneMenu - 1) + String(owner._parent.twoMenu - 1)];
     if (owner._parent.oneMenu == null) 
     {
     owner._parent.Depth2menuCtrl(0);
     }
     new mx.transitions.Tween(target.text_mc, "_alpha", mx.transitions.easing.Regular.easeOut, target.text_mc._alpha, 100, 12, false);
     var __reg1 = new mx.transitions.Tween(target.Light_mc, "_alpha", mx.transitions.easing.Regular.easeOut, target.Light_mc._alpha, 0, 12, false);
     __reg1.onMotionChanged = function ()
     {
     target.color_mc.setMask(target.text_mc);
     nowMenuMC.color_mc.setMask(nowMenuMC.text_mc);
     }
     ;
     target.btnPlay(false);
     new mx.transitions.Tween(nowMenuMC.text_mc, "_alpha", mx.transitions.easing.Regular.easeOut, nowMenuMC.text_mc._alpha, 0, 12, false);
     new mx.transitions.Tween(nowMenuMC.Light_mc, "_alpha", mx.transitions.easing.Regular.easeOut, nowMenuMC.Light_mc._alpha, 100, 12, false);
     nowMenuMC.btnPlay(true);
     owner["menu_" + oneOver].btnPlay(false);
     owner["menu_" + owner._parent.oneMenu].btnPlay(true);
     barCtrl(owner._parent.oneMenu);
    }
    function twoDown(oneOver, twoOver, target)
    {
     if (oneOver == 1 && twoOver == 2) 
     {
     owner._parent.thrMenu = 1;
     Depth2_mc.Blank_mc.menu_01.menu_1.btnPlay(true);
     Depth2_mc.Blank_mc.menu_01.hitCtrl();
     }
     else 
     {
     owner._parent.thrMenu = null;
     Depth2_mc.Blank_mc.menu_01.hitCtrl();
     }
     target.btnPlay(false);
     target.hit._visible = true;
     new mx.transitions.Tween(target.text_mc, "_alpha", mx.transitions.easing.Strong.easeOut, target.text_mc._alpha, 100, 12, false);
     var __reg1 = new mx.transitions.Tween(target.Light_mc, "_alpha", mx.transitions.easing.Strong.easeOut, target.Light_mc._alpha, 0, 12, false);
     __reg1.onMotionChanged = function ()
     {
     target.color_mc.setMask(target.text_mc);
     }
     ;
     owner._parent.menuLoad(oneOver, twoOver);
    }
    var owner = this;
    var totalOneMenu = 4;
    var twoDepName_0 = new Array("", "", "", "O.S.T");
    var twoDepName_1 = new Array("", "", "", "");
    var twoDepName_2 = new Array("", "", "");
    var twoDepName_3 = new Array("", "");
    var twoDepNum = new Array();
    i = 0;
    while (i < totalOneMenu) 
    {
     twoDepNum.push(owner["twoDepName_" + i].length);
     ++i;
    }
    lock_mc.onRollOver = function ()
    {
     this.useHandCursor = false;
    }
    ;
    lock_mc._visible = false;
    i = 1;
    while (i < 5) 
    {
     owner["menu_" + i].hit.onRollOver = function ()
     {
     depth1_Over = this._parent._name.substr(5, 1);
     oneDepthOver(depth1_Over, this._parent);
     }
     ;
     owner["menu_" + i].hit.onRollOut = owner["menu_" + i].hit.onReleaseOutside = function ()
     {
     oneDepthOut(this._parent);
     }
     ;
     owner["menu_" + i].hit.onRelease = function ()
     {
     if (owner._parent.oneMenu != this._parent._name.substr(5, 1)) 
     {
     this._visible = false;
     oldTarget = owner.Depth2_mc.Blank_mc["menu_" + String(owner._parent.oneMenu - 1) + String(owner._parent.twoMenu - 1)];
     oldTarget._visible = true;
     owner["menu_" + owner._parent.oneMenu].hit._visible = true;
     Num = Number(this._parent._name.substr(5, 1));
     owner._parent.oneMenu = Num;
     owner._parent.twoMenu = 1;
     owner._parent.thrMenu = null;
     owner.Depth2_mc.Blank_mc["menu_" + String(owner._parent.oneMenu - 1) + String(owner._parent.twoMenu - 1)].hit._visible = false;
     owner.Depth2_mc.Blank_mc.menu_01.hitCtrl();
     trace(owner.Depth2_mc.Blank_mc.menu_01);
     twoDown(Num, 1, oldTarget);
     twoDepthOver(Num, 1, owner.Depth2_mc.Blank_mc["menu_" + String(owner._parent.oneMenu - 1) + String(0)]);
     barCtrl(owner._parent.oneMenu);
     }
     }
     ;
     ++i;
    }
    var Xpos = new Array(390, 80, 290, 485, 735);
    var widthArry = new Array(242, 242, 224, 242, 150);
    var center;
    var xPos = 0;
    var xGap = 0;
    var XposArry = new Array();
    i = 0;
    while (i < totalOneMenu) 
    {
     j = 0;
     while (j < twoDepNum[i]) 
     {
     if (i == 0 && j == 1) 
     {
     var subMC = owner.Depth2_mc.Blank_mc.attachMovie("sub_mc_Depth", "menu_" + (String(i) + String(j)), String(i) + String(j));
     }
     else 
     {
     var subMC = owner.Depth2_mc.Blank_mc.attachMovie("sub_mc", "menu_" + (String(i) + String(j)), String(i) + String(j));
     }
     subMC.text_mc.name_text.text = owner["twoDepName_" + i][j];
     setTxt(subMC.text_mc.name_text, 0, "AsiaSHH");
     subMC.text_mc2.name_text.text = owner["twoDepName_" + i][j];
     setTxt(subMC.text_mc2.name_text, 0, "AsiaSHH");
     subMC.hit._width = Math.round(subMC.text_mc._width) + 17;
     subMC.color_mc.setMask(subMC.text_mc);
     subMC.color_mc._width = subMC.text_mc._width;
     subMC.Light_mc._x = subMC.hit._width / 2;
     subMC.Light_mc._alpha = 0;
     subMC._x = xPos + xGap;
     if (j == 0) 
     {
     XposArry.push(subMC._x);
     }
     xPos = xPos + Math.round(subMC.text_mc._width) + 16;
     subMC.hit.onRollOver = function ()
     {
     depth1_Num = Number(this._parent._name.substr(5, 1)) + 1;
     depth2_Num = Number(this._parent._name.substr(6, 1));
     twoDepthOver(depth1_Num, depth2_Num, this._parent);
     }
     ;
     subMC.hit.onRollOut = subMC.hit.onReleaseOutside = function ()
     {
     depth1_Out = Number(this._parent._name.substr(5, 1)) + 1;
     depth2_Out = Number(this._parent._name.substr(6, 1));
     twoDepthOut(depth1_Out, depth2_Out, this._parent);
     }
     ;
     subMC.hit.onRelease = function ()
     {
     this._visible = false;
     owner["menu_" + owner._parent.oneMenu].hit._visible = true;
     oldTarget = this._parent._parent["menu_" + String(owner._parent.oneMenu - 1) + String(owner._parent.twoMenu - 1)];
     owner._parent.oneMenu = Number(this._parent._name.substr(5, 1)) + 1;
     owner._parent.twoMenu = Number(this._parent._name.substr(6, 2)) + 1;
     owner._parent.thrMenu = null;
     owner["menu_" + owner._parent.oneMenu].hit._visible = false;
     twoDown(owner._parent.oneMenu, owner._parent.twoMenu, oldTarget);
     getURL("javascript: _trk_flashContentsView( \"/CP" + owner._parent.oneMenu + "/CP" + owner._parent.twoMenu + "\" )", "");
     trace(owner._parent.oneMenu);
     trace(owner._parent.twoMenu);
     }
     ;
     ++j;
     }
     xGap = xGap + 150;
     ++i;
    }
    
     
  8. 29. Oktober 2008
    AW: Pseudorelative Links in .swf dateien

    Der Font wurde wo anders schon eingebunden, mal durchschauen
    2. Wird der Font nicht angezeigt, da du höchstwahrscheinlich nichtmal den Zeichensatz besitzt.
    Dadurch wird dieser beim neuen kompilieren auch nicht angezeigt.
     
  9. 29. Oktober 2008
    AW: Pseudorelative Links in .swf dateien

    Danke sehr, dass du mir das mitteilst, aber das hab ich mir selber gedacht. Gesucht war die Lösung.

    Und die Lösung fand sich im Sothink Swf Compiler.

    Ich konnte den Font nicht extrahieren aber die dynamischen Textfelder waren nicht beschädigt.

    Ich hab einen anderen Font eingebunden und es funktioniert.
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.