从 flashVars 将文本设置到剪贴板

Posted

技术标签:

【中文标题】从 flashVars 将文本设置到剪贴板【英文标题】:Set text into clipboard from flashVars 【发布时间】:2013-03-11 08:34:39 【问题描述】:

我想做什么: 获取 Flash Var,将 flashVar 设置为剪贴板。 html:

<embed src="setClip.swf" FlashVars="res=123" quality="high" TYPE="application/x-shockwave-flash">

动作脚本(3):

function loaderComplete(myEvent:Event)

   this.flashVars=this.loaderInfo.parameters;
   this.flashVarsLoaded=true;
   this.useFlashVars();

function useFlashVars()

        aaa.text = myFlashVars.res;

var myFlashVars=new Object();
myFlashVars.flashVarsLoaded=false;
myFlashVars.loaderComplete=loaderComplete;
myFlashVars.useFlashVars=useFlashVars;
this.loaderInfo.addEventListener(Event.COMPLETE, myFlashVars.loaderComplete);

当我打开 html 页面时,“aaa”输入中没有文本。获取 flash var 然后将他插入剪贴板(as1,as2,as3)(我需要好例子)的最佳方法是什么?

【问题讨论】:

【参考方案1】:

您无需等待 flashvars 加载并使用 Event.COMPLETE。 Flashvars 在播放器启动时位于主类 loaderInfo.parameters 中。只需尝试在主类中跟踪它trace (this.loaderInfo.parameters["res"])

1新建fla文件,保存

2 添加到舞台文本字段(动态),设置实例名称ft1

3点击主舞台,属性面板,类类型main

4 在带有 fla 的目录中创建 main.as(步骤 1)

5个主要为:

package  

    import flash.display.MovieClip;
    public class main extends MovieClip 
        public function main() 
            tf1.text = this.loaderInfo.parameters["foo"];
        
    

6 文件->发布

7 转到目录(步骤 1),打开 .html 文件,添加行 &lt;param name="flashvars" value="foo=10" /&gt; 在参数中(两次)

8 在浏览器中打开 HTML,尽情享受

(注意:您无法在 Adob​​e Flash IDE 环境中测试 flashvars,只能在真实浏览器中测试)

关于剪贴板: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/system/System.html#setClipboard() This method works from any security context when called as a result of a user event (such as a keyboard or input device event handler).

9 添加按钮到舞台,命名为btn

10 main.as:

package  
    import flash.display.MovieClip;
    import flash.events.MouseEvent;
    import flash.system.System;

    public class main extends MovieClip 
        public function main() 
            tf1.text = loaderInfo.parameters["foo"];
            btn.addEventListener(MouseEvent.CLICK, onClickHandler);
        

        private function onClickHandler(e:MouseEvent):void 
            System.setClipboard(loaderInfo.parameters["foo"]);
        
    

11 编译.fla,在浏览器中打开HTML,点击btn,查看剪贴板

抱歉,没有用户交互,无法“自动”填充剪贴板。请记住:读取和写入剪贴板是一个巨大的安全漏洞。

【讨论】:

以上是关于从 flashVars 将文本设置到剪贴板的主要内容,如果未能解决你的问题,请参考以下文章

无法将文本从 WKWebview 复制到剪贴板

使用javascript将文本从div复制到剪贴板

按下按钮将文本从 JTextfield 复制到剪贴板

通过上下文菜单将文本从edittext复制到剪贴板时出现异常?

在 React 中使用 document.execCommand 将文本从 div 复制到剪贴板

如何将文本文件中的数据复制到剪贴板? [复制]