如何点击外部html文件中的链接在Actionscript中打开新框架?

时间:2015-10-08 11:06:26

标签: actionscript-3

我希望有人可以帮我解决我在Action脚本中的问题。我有一个外部html文件,其中有链接,当在Flash中动态加载时应该打开新的窗口/帧。我已经设法为第一个链接但是其他两个链接我不能,因为函数linkhandler只处理一个链接。如何让它处理所有链接,以便当单击每个链接时打开一个不同的框架。下面是我的代码和我的html文件。< / p>

import flash.display.Loader;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.text.TextField;

var myTextLoader:URLLoader = new URLLoader();
var myTextField_txt:TextField = new TextField();

var textStyle:TextFormat = new TextFormat();
var n:Array=new Array("Mythical Theories","Creation Theory","Evolution Theory");
textStyle.font = "Verdana";
textStyle.size = 14;
myTextField_txt.wordWrap=true;
myTextField_txt.autoSize=TextFieldAutoSize.LEFT;
myTextField_txt.multiline = true;
myTextField_txt.width = 480; 
myTextField_txt.height = 300; 
myTextField_txt.x = 10; 
myTextField_txt.y = 80;


myTextLoader.addEventListener(Event.COMPLETE, onLoaded);

function onLoaded(e:Event):void {
  var loadedText:URLLoader = URLLoader(e.target);
   myTextField_txt.htmlText = loadedText.data
    addChild(myTextField_txt);
     myTextField_txt.setTextFormat(textStyle);  
            }

myTextLoader.load(new URLRequest("origin.txt"));

myTextField_txt.addEventListener(TextEvent.LINK, linkHandler);


function linkHandler(event:TextEvent):void {                
    // Open the link in a new window.
    myTextField_txt.parent.removeChild(myTextField_txt);
    myTextLoader.removeEventListener(Event.COMPLETE, onLoaded);
    gotoAndStop(30);        
}

Html文件

</p>- There are many theories that try to explain the origin of man.</p>
</p>- Most communities have stories that explain how human beings began to exist.</p>`enter code here`
</p>- We will look at three theories that try to explain the origin of man.</p>
    </p><font color="#0000FF">1.<a href="event:TextEvent"><u>Mythical Theories</u></a></p>
    </p>2.<a href="event:TextEvent"><u>Creation Theory</u></a></p>
    </p>3.<a href="event:TextEvent"><u>Evolution Theory</u></a></p></font>

1 个答案:

答案 0 :(得分:0)

你应该为每个href使用不同的链接事件标签:

</p>- There are many theories that try to explain the origin of man.</p>
</p>- Most communities have stories that explain how human beings began to exist.</p>`enter code here`
</p>- We will look at three theories that try to explain the origin of man.</p>
    </p><font color="#0000FF">1.<a href="event:Ref1"><u>Mythical Theories</u></a></p>
    </p>2.<a href="event:Ref2"><u>Creation Theory</u></a></p>
    </p>3.<a href="event:Ref3"><u>Evolution Theory</u></a></p></font>

所以你以后可以按名称处理它们:

function linkHandler(event:TextEvent):void {                
    // Open the link in a new window.
    myTextField_txt.parent.removeChild(myTextField_txt);
    myTextLoader.removeEventListener(Event.COMPLETE, onLoaded);
    var frameNum:uint;
    switch (event.text) {
        case "Ref1": frameNum = 10; break;
        case "Ref2": frameNum = 20; break;
        case "Ref3": frameNum = 30; break;
    }
    gotoAndStop(frameNum);
}

没有经过测试,但应该有效