用fscommand()
看看flash里的这个函数的例

解决方案 »

  1.   

    http://www.flashempire.net/showthread.php?s=0c6c0745ee843c5e13483ae2e550139d&threadid=113343http://www.flashempire.net/showthread.php?s=0c6c0745ee843c5e13483ae2e550139d&threadid=113307
      

  2.   

    啊忘记了。。要登陆才能看[原创]巧用addProperty和Flash::SetVariable调用FlashMX的函数 
    反正我是菜鸟。这个是我刚想的。如果没有人知道的话,就是我原创了吧。。 
    在FLASH中,要调用JAVASCRIPT,可以发送FSCommand 
    但是要JavaScript实时调用Flash的函数,实在是难。。 
    下面是在FLASH MX下实现的一个方法: 
    原理是通过用oFlash.SerVarible设置变量的属性,调用property set来进行处理的。 
    <!------HTML CODE -------> <HTML> 
    <HEAD> 
    <meta http-equiv=Content-Type content="text/html; charset="> 
    <TITLE>Untitled-2</TITLE> 
    </HEAD> 
    <BODY bgcolor="#FFFFFF"> 
    <!-- URL's used in the movie--> 
    <!-- text used in the movie--> 
    <!--sdfasdfasdfasdf--><OBJECT id="oFlash" classid="clsid27CDB6E-AE6D-11cf-96B8-444553540000" 
    codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" 
    WIDTH="550" HEIGHT="400" id="Untitled-2" ALIGN=""> 
    <PARAM NAME=movie VALUE="Untitled-2.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#FFFFFF> <EMBED src="Untitled-2.swf" quality=high bgcolor=#FFFFFF WIDTH="550" HEIGHT="400" NAME="Untitled-2" ALIGN="" 
    TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED> 
    </OBJECT> 
    </BODY> 
    <script> 
    function window.onload() 

    oFlash.SetVariable("_root.tasker.todo","showtime"); 

    </script> 
    </HTML> 
    //ActionScript Of Frame1 
    //----------------------------------------------- 
    _root.tasker=new ClassTasker(); 
    function ClassTasker() 

    this.addProperty("todo",nullfunction,DoIt); 
    function nullfunction(){} 
    function DoIt(str) 

    eval(str)(); 


    function showtime() 

    //_root.vInput是一个Dynamic Text用来显示结果 
    _root.vInput=new Date(); 
    }
    __________________
    从FlashMX开始。这个是我从C:\WINNT\system32\Macromed\Flash\swflash.ocx抽取出来的东西。 
    大部分和FLASH内部的东西相关,我自己懒得去加描述了。。 属性: 
    Property AlignMode As Long 
    Property BackgroundColor As Long 
    Property Base As String 
    Property BGColor As String 
    Property DeviceFont As Boolean 
    Property EmbedMovie As Boolean 
    Property FrameNum As Long 
    Property Loop As Boolean 
    Property Menu As Boolean 
    Property Movie As String 
    Property Playing As Boolean 
    Property Quality As Long 
    Property Quality2 As String 
    Property ReadyState As Long read-only 
    Property SAlign As String 
    Property scale As String 
    Property ScaleMode As Long 
    Property Stacking As String 
    Property SWRemote As String 
    Property TotalFrames As Long read-only 
    Property WMode As String 方法: 
    Sub Back() 
    Function CurrentFrame() As Long 
    Function FlashVersion() As Long 
    Sub Forward() 
    Function FrameLoaded(ByVal FrameNum As Long) As Boolean 
    Function GetVariable(ByVal name As String) As String 
    Sub GotoFrame(ByVal FrameNum As Long) 
    Function IsPlaying() As Boolean 
    Sub LoadMovie(ByVal layer As Long, ByVal url As String) 
    Sub Pan(ByVal x As Long, ByVal y As Long, ByVal mode As Long) 
    Function PercentLoaded() As Long 
    Sub Play() 
    Sub Rewind() 
    Sub SetVariable(ByVal name As String, ByVal value As String) 
    Sub SetZoomRect(ByVal left As Long, ByVal top As Long, ByVal right As Long, ByVal bottom As Long) 
    Sub Stop() 
    Sub StopPlay() 
    Sub TCallFrame(ByVal target As String, ByVal FrameNum As Long) 
    Sub TCallLabel(ByVal target As String, ByVal label As String) 
    Function TCurrentFrame(ByVal target As String) As Long 
    Function TCurrentLabel(ByVal target As String) As String 
    Function TGetProperty(ByVal target As String, ByVal property As Long) As String 
    Function TGetPropertyNum(ByVal target As String, ByVal property As Long) As Double 
    Sub TGotoFrame(ByVal target As String, ByVal FrameNum As Long) 
    Sub TGotoLabel(ByVal target As String, ByVal label As String) 
    Sub TPlay(ByVal target As String) 
    Sub TSetProperty(ByVal target As String, ByVal property As Long, ByVal value As String) 
    Sub TSetPropertyNum(ByVal target As String, ByVal property As Long, ByVal value As Double) 
    Sub TStopPlay(ByVal target As String) 
    Sub Zoom(ByVal factor As Long) 事件: 
    Event FSCommand(ByVal command As String, ByVal args As String) 
    Event OnProgress(ByVal percentDone As Long) 
    Event OnReadyStateChange(ByVal newState As Long) 
    ---------------------------------------------------------------- 
    下面对这些东西的在IE上的使用方法加加说明: 
    现在有这么一个FLASH: 
    <OBJECT id="oFlash" classid="clsid27CDB6E-AE6D-11cf-96B8-444553540000" 
    codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" 
    WIDTH="550" HEIGHT="400" id="Untitled-2" ALIGN=""> 
    <PARAM NAME=movie VALUE="Untitled-2.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#FFFFFF> <EMBED src="Untitled-2.swf" quality=high bgcolor=#FFFFFF WIDTH="550" HEIGHT="400" NAME="Untitled-2" ALIGN="" 
    TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED> 
    </OBJECT> 
    那么属性都可以放在:<PARAM>的标签里面设置,例如<PARAM NAME=quality VALUE=high> 在脚本使用这些东西,方法是:(注意大小写) 
    <Script Language=JScript> 
    //属性: 
    oFlash.Menu=false;//那么按右键的时候,就不显示放大,缩小等选项了 
    //方法: 
    alert(oFlash.FlashVersion());//在我的机子上是393216, 
    //事件: 
    oFlash.attachEvent("FSCommand",onabcdefg); function onabcdefg(command,args) 

    status="接收FSCommand: "+command+":"+args; 

    </Script>
      

  3.   

    送:Delegate 之 FlashMX 简单版
    (JScript版:http://lostinet.d2g.com/temp/public/delegate/)function Delegate(obj,func)
    {
    if(this.__proto__==Delegate.prototype)
    trace("new Delegate()是不合法的调用方法");
    return CreateDelegateMethod()
    function CreateDelegateMethod()
    {
    var _Arguments=new Array();
    function DelegateInstance()
    {
    if(obj==null)return;
    var arr=new Array();
    var i=0;
    for(;i<arguments.length;i++)
    arr.push(arguments[i]);
    for(;i<_Arguments.length;i++)
    arr.push(_Arguments[i]);
    return func.apply(obj,arr);
    }
    DelegateInstance.PreInvoke=function()
    {
    return DelegateInstance.SetArguments(arguments)
    }
    DelegateInstance.SetArguments=function(args)
    {
    _Arguments=new Array();
    for(var i=0;i<args.length;i++)
    _Arguments.push(args[i]);
    return DelegateInstance;
    }
    DelegateInstance.Detach=function()
    {
    _Arguments=new Array();
    obj=null;
    func=null;
    }
    DelegateInstance.toString=function(){
    return "[DelegateInstance]";
    }
    return DelegateInstance;
    }
    }
    //例子
    var arr=new Array(1,3,4);//arr对象
    trace(arr.join("."))//正常调用arr的方法。
    var d=Delegate(arr,arr.join);//创建委托
    trace(d(":"));//使用单个函数实现arr.join(":")
    d.PreInvoke("*")//预先调用
    trace(d());//启用预先调用的参数来调用arr.join => arr.join("*")
    trace(Delegate(arr,arr.join).PreInvoke("|")());//一气呵成。