[Laszlo-dev] [Laszlo-checkins] r12336 - openlaszlo/trunk/lps/components/extensions/av

P T Withington ptw at pobox.com
Wed Jan 7 06:38:16 PST 2009


Why do you think you can't have a method named 'call'?  I know at one  
point Henry put a warning in about this, but that was wrong.  (If you  
created a _static_ method 'call', that would be a different matter, as  
that _is_ reserved.)

On 2009-01-07, at 08:25EST, max at openlaszlo.org wrote:

> Author: max
> Date: 2009-01-07 05:25:33 -0800 (Wed, 07 Jan 2009)
> New Revision: 12336
>
> Modified:
>   openlaszlo/trunk/lps/components/extensions/av/rtmpconnection.lzx
> Log:
> Change 20090107-maxcarlson-8 by maxcarlson at Bank.lan on 2009-01-07  
> 04:19:55 PST
>    in /Users/maxcarlson/openlaszlo/trunk-clean
>    for http://svn.openlaszlo.org/openlaszlo/trunk
>
> Summary: UPDATED: Convert rtmpstream to lzx syntax
>
> Bugs Fixed: LPP-7571 - Rewrite components to use LZX syntax (partial)
>
> Technical Reviewer: sallen
> QA Reviewer: hminsky
>
> Details: Convert to lzx syntax, preserving everything.  Note that  
> you aren't allowed to have methods named 'call' anymore - see the  
> comment below.
>
> Tests: Example from <doc/> section runs as before in swf8 and swf9.
>
>
>
> Modified: openlaszlo/trunk/lps/components/extensions/av/ 
> rtmpconnection.lzx
> ===================================================================
> --- openlaszlo/trunk/lps/components/extensions/av/rtmpconnection.lzx	 
> 2009-01-07 12:25:54 UTC (rev 12335)
> +++ openlaszlo/trunk/lps/components/extensions/av/rtmpconnection.lzx	 
> 2009-01-07 13:25:33 UTC (rev 12336)
> @@ -8,125 +8,90 @@
>       Improvements by Sebastian Wagner
>       Support for OL 4.2/SWF9 by Raju Bitter
>   -->
> -  <interface name="rtmpconnection" extends="node">
> -    <doc>
> -      <tag name="shortdesc"><text>Allows connections to RTMP  
> servers</text></tag>
> -      <text>
> -        <p><tagname>rtmpconnection</tagname> allows applications to  
> connect to RTMP servers, like http://osflash.org/red5 or http://www.wowzamedia.com/ 
> .  Note that you'll need a server running with the appropriate URLs  
> set up for this example to work.</p>
> -
> -        <example><programlisting class="code">
> -        &lt;canvas&gt;
> -            &lt;rtmpconnection src="rtmp://localhost:1935/ 
> simplevideostreaming/" autoconnect="true"/&gt;
> -            &lt;videoplayer url="Extremists.flv" type="rtmp"  
> autoplay="true" width="320" height="240"/&gt;
> -        &lt;/canvas&gt;
> -        </programlisting></example>
> -      </text>
> -    </doc>
>
> -    <!--- Connect automatically during init. If false, you need to  
> explicitly
> -          call connect().
> -          Default is true.
> -          @type Boolean
> -          @access public
> -    -->
> -    <attribute name="autoconnect" value="true" type="boolean" />
> -
> -    <!--- String to indicate connection status.
> -          @type string
> -          @access public
> -    -->
> -    <attribute name="status" value="disconnected" type="string"/>
> -
> -    <!--- Number to indicate what stage of connection we're in:
> -          0: disconnected, 1: connecting, 2: connected.
> -          @type Number
> -          @access public
> -    -->
> -    <attribute name="stage" value="0" type="number"/>
> -
> -    <!--- A reference to the Flash NetConnection object.
> -          @type Object
> -          @access private
> -    -->
> -    <attribute name="_nc" value="null" type="expression" />
> -
> -    <!--- Application url, for example
> -          "rtmp:/appname" or "rtmp://myserver.com/myapp/".
> -          @type String
> -          @access private
> -    -->
> -    <attribute name="src" value="" type="string"/>
> -
> -    <!--- Turn on for verbose debugger output.
> -          @type Boolean
> -          @access public
> -    -->
> -    <attribute name="debug" value="false"/>
> -
> -    <!--- Event sent when connection established.
> -          @access private -->
> -    <event name="onconnect"/>
> -    <!--- Event sent when an error occurs
> -          @access private -->
> -    <event name="onerror"/>
> -  </interface> <!-- rtmpconnection -->
> -
> -  <!-- these methods are shared across runtimes>
> -  <script when="immediate"><![CDATA[
> -    mixin NewrtmpconnectionShared {
> -        function NewrtmpconnectionShared ( parent:LzView? = null ,  
> attrs:Object? = null , children:Array? = null, instcall:Boolean  =  
> false) {
> -            super(parent, attrs, children, instcall);
> -        }
> -    }
> -  ]]></script-->
> -
>   <switch>
>     <when runtime="dhtml">
>       <!-- no support for RTMP in DHTML -->
>     </when>
>     <otherwise>
> -      <!-- TODO [jgrandy 6/1/2007] <otherwise> should be <when  
> runtime="as2"> but that isn't currently supported -->
> -      <script when="immediate"><![CDATA[
> +        <class name="rtmpconnection">
> +            <doc>
> +                <tag name="shortdesc"><text>Allows connections to  
> RTMP servers</text></tag>
> +                <text>
> +                    <p><tagname>rtmpconnection</tagname> allows  
> applications to connect to RTMP servers, like http://osflash.org/ 
> red5 or http://www.wowzamedia.com/.  Note that you'll need a server  
> running with the appropriate URLs set up for this example to work.</p>
> +
> +                    <example><programlisting class="code">
> +                    &lt;canvas&gt;
> +                        &lt;rtmpconnection src="rtmp://localhost: 
> 1935/simplevideostreaming/" autoconnect="true"/&gt;
> +                        &lt;videoplayer url="Extremists.flv"  
> type="rtmp" autoplay="true" width="320" height="240"/&gt;
> +                    &lt;/canvas&gt;
> +                    </programlisting></example>
> +                </text>
> +            </doc>
>
> -        // Classes that implement an interface must obey the LZX
> -        // tag->class mapping convention
> -        dynamic class $lzc$class_rtmpconnection extends LzNode {
> -            // Import statements
> -            if ($as3) {
> -                #passthrough (toplevel:true) {
> -                    import flash.net.NetConnection;
> -                    import flash.events.ErrorEvent;
> -                    import flash.events.StatusEvent;
> -                    import flash.events.IOErrorEvent;
> -                    import flash.events.NetStatusEvent;
> -                    import flash.events.SecurityErrorEvent;
> -                }#
> -            }
> -            // Next two are part of the required LFC tag class  
> protocol
> -            static var tagname = 'rtmpconnection';
> -            static var attributes = new  
> LzInheritedHash(LzNode.attributes);
> -            static var uid = 0;
> -
> -            var autoconnect = true;
> -            var status = "disconnected";
> -            var stage = 0;
> -            var src = "";
> -            var debug = false;
> -            var _nc = null;
> -
> -            var onconnect = LzDeclaredEvent;
> -            var onerror = LzDeclaredEvent;
> +            <switch>
> +                <when property="$as3">
> +                    <passthrough>
> +                        import flash.net.NetConnection;
> +                        import flash.events.ErrorEvent;
> +                        import flash.events.StatusEvent;
> +                        import flash.events.IOErrorEvent;
> +                        import flash.events.NetStatusEvent;
> +                        import flash.events.SecurityErrorEvent;
> +                    </passthrough>
> +                </when>
> +            </switch>
>
> -            override function construct(parent,args) {
> -                super.construct(parent, args);
> -                new LzDelegate( this , "_oninit" , this , "oninit" );
> -            }
> +            <!--- Connect automatically during init. If false, you  
> need to explicitly
> +                call connect().
> +                Default is true.
> +                @type Boolean
> +                @access public
> +            -->
> +            <attribute name="autoconnect" value="true"  
> type="boolean" />
> +
> +            <!--- String to indicate connection status.
> +                @type string
> +                @access public
> +            -->
> +            <attribute name="status" value="disconnected"  
> type="string"/>
>
> -            function $lzc$class_rtmpconnection(parent, attrs,  
> children, async) {
> -                super(parent, attrs, children, async);
> -            }
> +            <!--- Number to indicate what stage of connection we're  
> in:
> +                0: disconnected, 1: connecting, 2: connected.
> +                @type Number
> +                @access public
> +            -->
> +            <attribute name="stage" value="0" type="number"/>
>
> -            function _oninit(ignore) {
> +            <!--- A reference to the Flash NetConnection object.
> +                @type Object
> +                @access private
> +            -->
> +            <attribute name="_nc" value="null" type="expression" />
> +
> +            <!--- Application url, for example
> +                "rtmp:/appname" or "rtmp://myserver.com/myapp/".
> +                @type String
> +                @access private
> +            -->
> +            <attribute name="src" value="" type="string"/>
> +
> +            <!--- Turn on for verbose debugger output.
> +                @type Boolean
> +                @access public
> +            -->
> +            <attribute name="debug" value="false"/>
> +
> +            <!--- Event sent when connection established.
> +                @access private -->
> +            <event name="onconnect"/>
> +            <!--- Event sent when an error occurs
> +                @access private -->
> +            <event name="onerror"/>
> +
> +            <method name="init">
> +                super.init();
> +
>                 // Store new RTMP connections in  
> canvas.rtmpconnections. If no
>                 // name is set for an rtmpconnection use "_default".  
> Other real-time
>                 // objects will use the  
> canvas.rtmpconnections["_default"] NetConnection
> @@ -148,7 +113,7 @@
>                 }
>
>                 canvas.rtmpconnections[this.name] = this;
> -
> +
>                 // Local reference to rtmpconnection.
>                 this._nc = new NetConnection();
>                 if ($as3) {
> @@ -174,9 +139,9 @@
>                         _root.Debug.write("---------------> id: ",  
> id);
>                     }
>                     **/
> -
> +
>                 }
> -
> +
>                 /** the following code should work now, but it hasn't
>                     been tested, so I'll leave it commented out -sa
>                 this._nc.__resolve = function(name) {
> @@ -191,23 +156,22 @@
>                 if (this.autoconnect) {
>                     this.connect();
>                 }
> -            } // end function _oninit
> +            </method>
>
> -            /** Catch as3 security errors. **/
> -            function _onSecurityError (error) {
> +            <method name="_onSecurityError" args="error">
>                 var errstr = error + '';
>                 if ($debug) Debug.warn("rtmpconnection  
> _onSecurityError() " + errstr);
>                 if (this.onerror.ready) {
>                     this.onerror.sendEvent(errstr);
>                 }
> -            }
> -
> -            function connect() {
> +            </method>
> +
> +            <method name="connect">
>                 //Debug.write("rtmpconnection.connect, stage",  
> this.stage);
>                 if (this.stage > 0) {
>                     return; // already connected or connecting
>                 }
> -
> +
>                 if ($debug) {
>                     if (this.src == "") {
>                         Debug.write("no src url defined for", this);
> @@ -233,11 +197,9 @@
>
>                 this.setAttribute("status", "connecting");
>                 this.setAttribute("stage", 1);
> -
> -
> -            } // end function connect
> +            </method>
>
> -            function _onStatus (evt) {
> +            <method name="_onStatus" args="evt">
>                 if ($as3) evt = evt.info;
>                 var code = evt.code;
>
> @@ -246,16 +208,16 @@
>
>                 //Debug.write(evt);
>                 //Debug.write("rtmpconnection", this, "_onStatus",  
> code, description);
> -
> +
>                 if (this.debug) {
>                     if ($debug) Debug.write("rtmpconnection", this,  
> "_onStatus", code);
>                 }
>
>                 var msg = "";
>                 var s = this.stage;
> -
> +
>                 switch (code) {
> -
> +
>                     case "NetConnection.Connect.AppShutdown": {
>                         // The application has been shut down
>                         // (for example, if the application is out  
> of memory
> @@ -265,14 +227,14 @@
>                         s = 0;
>                         break;
>                     }
> -
> +
>                     case "NetConnection.Connect.Closed": {
>                         // The connection was successfully closed.
>                         msg = "disconnected";
>                         s = 0;
>                         break;
>                     }
> -
> +
>                     case "NetConnection.Connect.Failed": {
>                         // The connection attempt failed;
>                         // for example, the server is not running.
> @@ -280,7 +242,7 @@
>                         s = 0;
>                         break;
>                     }
> -
> +
>                     case "NetConnection.Connect.Rejected": {
>                         // The client does not have permission to  
> connect
>                         // to the application, or the application  
> expected
> @@ -290,24 +252,24 @@
>                         s = 0;
>                         break;
>                     }
> -
> +
>                     case "NetConnection.Connect.Success": {
>                         // The connection attempt succeeded.
>                         msg = "connected";
>                         s = 2;
>                         break;
>                     }
> -
> +
>                     default: {
>                         msg = code;
>                         break;
>                     }
> -
> +
>                 }
> -
> +
>                 this.setAttribute("status", msg);
>                 this.setAttribute("stage", s);
> -
> +
>                 if (this.debug) {
>                     if ($debug) {
>                         if (s == 2) {
> @@ -317,29 +279,22 @@
>                         }
>                     }
>                 }
> -
> +
>                 if (s == 2) {
>                     if (this.onconnect.ready) {
>                         this.onconnect.sendEvent();
>                     }
>                 }
> -            } // end function _onstatus
> +            </method>
>
> -            function call (func, obj, params) {
> +            <method name="callMethod" args="func, obj, params">
>                 if (this.debug) {
> -                    if ($debug) Debug.write("call: func, obj,  
> params", func, obj, params);
> +                    if ($debug) Debug.write("callMethod: func, obj,  
> params", func, obj, params);
>                 }
> -
> -                if (params.length != 0) {
> -                    this._nc.call.apply(arguments);
> -                } else {
> -                    this._nc.call(func, obj);
> -                }
> -            }
> -
> -        } // End of rtmpconnection
> -        lz[$lzc$class_rtmpconnection.tagname] = $lzc 
> $class_rtmpconnection;
> -      ]]></script>
> +
> +                this._nc.call(func, obj, params);
> +            </method>
> +        </class>
>     </otherwise>
>   </switch>
> </library>
>
>
> _______________________________________________
> Laszlo-checkins mailing list
> Laszlo-checkins at openlaszlo.org
> http://www.openlaszlo.org/mailman/listinfo/laszlo-checkins



More information about the Laszlo-dev mailing list