加载外部图片而不会干扰用户正在进行的工作 [英] Load external pictures without interfering in the work the user is doing

查看:76
本文介绍了加载外部图片而不会干扰用户正在进行的工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在Adobe Flash中加载外部图片(最终会定期更改)而不会干扰最终用户的工作。我想要的是类似于编程语言中的多线程技术。

我使用以下代码加载外部图片:

I want to load external pictures (that will end up changing periodically) without interfering with the end-user''s work in Adobe Flash. What I want would be similar to Multi-Threading technology in the Programming Languages.
I am using the following code for load external pictures:

private var ldrExternalPreloader:Loader;
private var pictureHolderMovieClip:MovieClip;
private var showPreloader:Boolean;
private var preloaderMovieClip:MovieClip;
private var progressIndicator:TextField;

public final function Preloader(strFilePathName:String, mcPictureHolder:MovieClip, bolPreloader:Boolean = true, mcPreloader:MovieClip = null, txtDynProgressIndicator:TextField = null):void 
{
    ldrExternalPreloader = new Loader();
    ldrExternalPreloader.load(new URLRequest(strFilePathName));

    filePathName = strFilePathName;
    fictureHolderMovieClip = mcPictureHolder;
    showPreloader = bolPreloader;
    preloaderMovieClip = mcPreloader;
    progressIndicator = txtDynProgressIndicator;

    if (bolPreloader)
    {
        if (mcPreloader != null)
        {
            mcPreloader.visible = true;
        }
        trace("*************************" + " External Preloader Informtion " + "*************************");
        ldrExternalPreloader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, ldrExternalPreloader_Progress);
        trace("**************************************************");
    }
    ldrExternalPreloader.contentLoaderInfo.addEventListener(Event.COMPLETE, ldrExternalPreloader_Complete);
}

private function ldrExternalPreloader_Progress(progEvent:ProgressEvent):void 
{
    var numProgressCompletePercent:Number = Math.floor((progEvent.bytesLoaded * 100) / progEvent.bytesTotal);

    if (progressIndicator != null)
    {
        progressIndicator.text = numProgressCompletePercent + "%";
    }

    if(preloaderMovieClip is MovieClip && preloaderMovieClip != null)
    {
        preloaderMovieClip.gotoAndStop(numProgressCompletePercent);
    }
    trace("Progress Completed (%): " + numProgressCompletePercent + "%");
    trace(progEvent.bytesLoaded + " Bytes of " + progEvent.bytesTotal + " is Loaded.");
}

private function ldrExternalPreloader_Complete(event:Event):void 
{
    pictureHolderMovieClip.addChild(ldrExternalPreloader);

    if (showPreloader)
    {
        if (preloaderMovieClip != null)
        {
            preloaderMovieClip.visible = false;
        }
        ldrExternalPreloader.removeEventListener(ProgressEvent.PROGRESS, ldrExternalPreloader_Progress);
    }
    ldrExternalPreloader.removeEventListener(Event.COMPLETE, ldrExternalPreloader_Complete);
}



我使用以下代码行:


And I use it with the following line of code:

Preloader("Images/Previews/PC.png", mcContents.mcTransition.mcTransitionAni.mcLeftPreviews, true, mcPreloader, mcPreloader.txtDynProgressIndicator);



我只想知道是否加载外部图片使用此方法会干扰用户在Adobe Flash Player或Adobe AIR中工作的GUI / UI吗?


I only want to know if loading external pictures with this method interferes in the GUI/UI that the user is working in while in Adobe Flash Player or Adobe AIR, or not?

推荐答案

在不干扰用户工作的情况下加载外部图片

我可以使用最近添加的 Adob​​e Flash Player(11.4 +)完成多线程处理> 工作者API。

但是,我不需要多线程来完成我想要完成的任务。 Loader是异步的。
Load external pictures without interfering in the users'' works
I can accomplish Multi-Threading with Adobe Flash Player (11.4+) using the recently added "Worker API."
However, I do not need Multi-Threading for what I''m trying to accomplish. "Loader" is asynchronous.


这篇关于加载外部图片而不会干扰用户正在进行的工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆