如何将 actionscript 2 代码转换为 actionscript 3?

Posted

技术标签:

【中文标题】如何将 actionscript 2 代码转换为 actionscript 3?【英文标题】:How to convert actionscript 2 code to actionscript 3? 【发布时间】:2017-12-24 09:13:52 【问题描述】:

我必须更改 Flash 文档中的徽标,但它在 actionscript 2 代码中,因此会出错。当我尝试保存文档时,actionscript 2 代码如下。有没有一种简单的方法可以转换为 actionscript 3 中的代码。 如何将其转换为动作脚本?

function buildMenu(success)

if(success)

  folder = this.firstChild.childNodes;
  var i;
  i = 0;
  while(i < folder.length)
  
     var _loc4_ = mainMenu.attachMovie("mainBtn","mainBtn" + i,i + 500);
     var _loc7_ = menu_numbers.attachMovie("number","number" + i,i + 550);
     _loc4_.btnName.text = folder[i].attributes.NAME;
     MenuColor0 = new Color(mainMenu.mainBtn0.bg);
     MenuColor0.setRGB(10802437);
     MenuColor1 = new Color(mainMenu.mainBtn1.bg);
     MenuColor1.setRGB(8633375);
     MenuColor2 = new Color(mainMenu.mainBtn2.bg);
     MenuColor2.setRGB(5612349);
     MenuColor3 = new Color(mainMenu.mainBtn3.bg);
     MenuColor3.setRGB(1208203);
     MenuColor3._width = 20;
     var _loc9_ = menu_numbers.attachMovie("mask","numara_mask" + i,i + 
650);
     _loc9_._width = 60;
     _loc9_._height = 45;
     _loc9_._x = _loc9_._x + (menu_numbers["numara_mask" + (i - 1)]._x + 
menu_numbers["numara_mask" + (i - 1)]._width + btnSpacing + 65);
     _loc9_._y = 15;
     _loc7_.setMask(_loc9_);
     var _loc10_ = new Color(_loc7_);
     _loc10_.setRGB(16777215);
     _loc7_._alpha = 40;
     _loc4_.link = folder[i].attributes.LINK;
     _loc4_.subMenu = folder[i].childNodes.length;
     _loc4_._x = _loc4_._x + (mainMenu["mainBtn" + (i - 1)]._x + 
mainMenu["mainBtn" + (i - 1)]._width + btnSpacing);
     trace(_loc4_._width);
     _loc7_.numara.text = i + 1;
     _loc7_._x = _loc7_._x + (menu_numbers["number" + (i - 1)]._x + 
menu_numbers["number" + (i - 1)]._width + btnSpacing + 77);
     if(_loc7_ == menu_numbers.number1)
     
        menu_numbers.number1._x = menu_numbers.number1._x + -4;
     
     if(_loc7_ == menu_numbers.number2)
     
        menu_numbers.number2._x = menu_numbers.number2._x + 8;
     
     if(_loc7_ == menu_numbers.number3)
     
        menu_numbers.number3._x = menu_numbers.number3._x + 10;
     
     if(_loc4_.subMenu)
     
        _loc4_.subfolder = folder[i].childNodes;
        _loc4_.createSubMenu = function()
        
           if(switcher == false)
           
              var _loc5_ = mainMenu.createEmptyMovieClip("subMenu",i);
              slide(mainMenu.subMenu2,mainMenu.subMenu2._y,- 
mainMenu.subMenu2._height - 
50,slideOutSpeed,"_y",mx.transitions.easing.Strong.easeOut);
              switcher = true;
           
           else
           
              _loc5_ = mainMenu.createEmptyMovieClip("subMenu2",i + 200);
              slide(mainMenu.subMenu,mainMenu.subMenu._y,- 
mainMenu.subMenu._height - 
50,slideOutSpeed,"_y",mx.transitions.easing.Strong.easeOut);
              switcher = false;
           
           currSub = _loc5_;
           var _loc2_ = undefined;
           _loc2_ = 0;
           while(_loc2_ < this.subMenu)
           
              var _loc4_ = _loc5_.attachMovie("subBtn","subBtn" + 
_loc2_,_loc2_ + 9000);
              _loc4_.btnName.text = this.subfolder[_loc2_].attributes.NAME;
              _loc4_.link = this.subfolder[_loc2_].attributes.LINK;
              var _loc3_ = new Color(_loc4_.bg);
              if(activeMain == mainMenu.mainBtn0)
              
                 _loc3_.setRGB(10867973);
              
              else if(activeMain == mainMenu.mainBtn1)
              
                 _loc3_.setRGB(8699168);
              
              else if(activeMain == mainMenu.mainBtn2)
              
                 _loc3_.setRGB(5678142);
              
              else if(activeMain == mainMenu.mainBtn3)
              
                 _loc3_.setRGB(1273996);
              
              _loc4_._x = activeMain._x;
              _loc4_._y = _loc4_._height + vSpace * _loc2_;
              _loc4_.onRelease = function()
              
                 getURL(this.link,"");
              ;
              _loc4_.onRollOver = function()
              
                 var _loc2_ = new Color(this.bg);
                 _loc2_.setRGB(subActiveBg);
              ;
              _loc4_.onRollOut = function()
              
                 var _loc2_ = new Color(this.bg);
                 if(activeMain == mainMenu.mainBtn0)
                 
                    _loc2_.setRGB(10867973);
                 
                 else if(activeMain == mainMenu.mainBtn1)
                 
                    _loc2_.setRGB(8699168);
                 
                 else if(activeMain == mainMenu.mainBtn2)
                 
                    _loc2_.setRGB(5678142);
                 
                 else if(activeMain == mainMenu.mainBtn3)
                 
                    _loc2_.setRGB(1273996);
                 
              ;
              _loc2_ = _loc2_ + 1;
           

slide(_loc5_,-50,0,slideInSpeed,"_y",mx.transitions.easing.Strong.easeOut);
           var _loc6_ = scope.attachMovie("mask","hitZone",1);
           _loc6_._x = mainX + currButton._x - 50;
           _loc6_._y = currButton._y - 5;
           _loc6_._width = _loc5_._width + 100;
           _loc6_._height = _loc5_._height + vSpace + mainY + 100;
           _loc6_._alpha = 0;
           _loc6_.useHandCursor = false;
           _loc6_.onRollOver = function()
           
              closeMenu();
              callJS("0");
           ;
        ;
        _loc4_.onRollOver = function()
        
           if(activeMain != this)
           
              activeMain = this;
              activeStates(this.btnName);
              if(_root.link != a)
              
                 LineBarColor = new Color(_root.LineBar);
                 if(activeMain == mainMenu.mainBtn0)
                 
                    LineBarColor.setRGB(10802437);
                 
                 else if(activeMain == mainMenu.mainBtn1)
                 
                    LineBarColor.setRGB(8633375);
                 
                 else if(activeMain == mainMenu.mainBtn2)
                 
                    LineBarColor.setRGB(5612349);
                 
                 else if(activeMain == mainMenu.mainBtn3)
                 
                    LineBarColor.setRGB(1208203);
                 
              
              callJS("1");
              currButton = this;
              this.createSubMenu();
           
        ;
     
     else
     
        _loc4_.onRollOver = function()
        
           if(activeMain != this)
           
              activeMain = this;
              activeStates(this.btnName);
              closeMenu();
              currButton = this;
              if(_root.link != a)
              
                 LineBarColor = new Color(_root.LineBar);
                 if(activeMain == mainMenu.mainBtn0)
                 
                    LineBarColor.setRGB(10802437);
                 
                 else if(activeMain == mainMenu.mainBtn1)
                 
                    LineBarColor.setRGB(8633375);
                 
                 else if(activeMain == mainMenu.mainBtn2)
                 
                    LineBarColor.setRGB(5612349);
                 
                 else if(activeMain == mainMenu.mainBtn3)
                 
                    LineBarColor.setRGB(1208203);
                 
              
              callJS("1");
           
        ;
        _loc4_.onRollOut = function()
        
           activeStates(null,null);
           activeMain = null;
           currButton = null;
        ;
        _loc4_.onRelease = function()
        
           if(activeMain != this)
           
              if(_root.link != a)
              
                 _root.link = a;
              
              getURL(this.link,"");
           
        ;
     
     i++;
  

else

  trace("XML yükleme hatasi");


function closeMenu()

slide(currSub,currSub._y,- currSub._height - 
50,slideOutSpeed,"_y",mx.transitions.easing.Strong.easeOut);
 activeStates(null,null);
 activeMain = null;
 currButton = null;

function callJS(c)

var _loc1_ = undefined;
_loc1_ = String(ExternalInterface.call("ShowHideMenu",c));

function activeStates(txt)

txt.textColor = mainActiveText;
currButton.btnName.textColor = mainText;

function slide(who, startvalue, endvalue, y_speed, prop, ease)

slider = new 
mx.transitions.Tween(who,prop,ease,startvalue,endvalue,y_speed,true);
 
var btnSpacing = 55;
var vSpace = 34;
var slideSpeed = 1;
var mainX = 230;
var mainY = 43;
var mainBg = 15461098;
var mainText = 16777215;
var mainActiveText = 16777215;
var slideInSpeed = 0.9;
var slideOutSpeed = 1.2;
var subMenuX = 250;
var subBg = 1208460;
var subActiveBg = 5810655;
a = 2;
var scope = this;
scope.createEmptyMovieClip("mainMenu",2);
mainMenu._x = mainX;
mainMenu._y = mainY;
var mask = mainMenu.attachMovie("mask","mask",100);
mask._width = scope._width;
mask._height = scope._width;
mask._y = 10;
mainMenu.setMask(mask);
var switcher = true;
var menuXml = new XML();
menuXml.ignoreWhite = true;
menuXml.onLoad = buildMenu;
menuXml.load(_root.MenuXmlPath);

【问题讨论】:

actionscript 2 to actionscript 3的可能重复 【参考方案1】:

没有将 AS2 转换为 AS3 的神奇开关。如果您只想交换徽标,如果您想编译 AS2 项目,只需将您的项目更改为 ActionScript 2.0。

【讨论】:

以上是关于如何将 actionscript 2 代码转换为 actionscript 3?的主要内容,如果未能解决你的问题,请参考以下文章

将html代码转换为actionscript代码

将 Actionscript 2 转换为 Actionscript 3

需要帮助修复代码以将文本框中的值转换为 ActionScript 3 中的变量

是否可以将 HTML 代码转换为 ActionScript?

Actionscript 3 - 如何从 XMLList 转换为 XML?

将 ActionScript 转换为 Delphi