- you had two blocks with the @constructor annotation, we only want
the one that was above the actual constructor function;

- really? it seems as though the two are exactly the reverse of what
they should be: the variable we declared 'private' in AS is translated
to a 'public' like implementation in JS and vice versa.

EdB



On Fri, Dec 7, 2012 at 3:09 PM, Michael Schmalle
<apa...@teotigraphix.com> wrote:
>
> - Constructor jsdoc comment block, I had this already, I guess I
> misunderstood what you wrote about it, I thought you said confuses the
> compiler. (easy to add back)
>
> - constructor block, I haven't don't much with this. It's a bit hairy what
> they were doing, and even more complicated to try and explain at the moment.
> This is going to take some work to get right since they hardcoded a lot of
> stuff per their implementation.
>
> - the private and public handling is implemented by the original authors, I
> will have to re implement that specifically.
>
>
> I'll post back in a couple hours.
>
> Mike
>
>
> Quoting Erik de Bruin <e...@ixsoftware.nl>:
>
>> Overall: WOW!
>>
>> The Closure Linter seems to prefer single over double quotes, is that
>> something you have control over?
>>
>> Other details are again in the inlined comments:
>>
>> //---------------------------------------------------------
>> JS Code
>>
>> /**
>>  * CROSS-COMPILED BY MXMLJSC (329449.1) ON 2012-12-07 08:11:27
>>
>>  *
>>  * @constructor
>>  * @extends flash.display.Sprite
>>  */
>> [#Remove: the @constructor and @extends annotation should be in their
>> own JSDoc block right above the constructor function (see comment
>> below)]
>>
>> goog.provide("com.example.components.MyTextButton");
>>
>> goog.require("flash.display.Sprite");
>>
>> [#Add: the @constructor and @extends annotation go here]
>> com.example.components.MyTextButton = function()
>> {
>>                 this.publicProperty /* : Number */ = 100;
>>                 goog.base(this);
>> }
>> [#Changes:
>> - I'd place the 'super' call as the first line in the constructor
>> function;
>> - you've seem to have switched the handling of the 'private' and
>> 'public' properties (look at the names);
>> - general remark: we don't need the 'type hints' (/* : Number */ etc.)
>> at all, the '@type' JSDoc annotations are what is used by CC;
>> - each function statement should be followed by a semi-colon right
>> after the closing curly bracket;
>> ]
>>
>> goog.inherits(com.example.components.MyTextButton, flash.display.Sprite);
>>
>> /**
>>  * Member: com.example.components.MyTextButton._privateVar
>>
>>  * @private
>>  * @type {string}
>>  */
>> com.example.components.MyTextButton.prototype._privateVar /* : String
>> */ = "do ";
>>
>> /**
>>  * Member: com.example.components.MyTextButton.publicProperty
>>
>>  * @type {number}
>>  */
>> com.example.components.MyTextButton.prototype.publicProperty /* :
>> Number */ = 100;
>>
>>
>> /**
>>  * Method: com.example.components.MyTextButton.myFunction()
>>
>>  * @this {com.example.components.MyTextButton}
>>  * @param {string} value
>>  * @return {string}
>>  */
>> com.example.components.MyTextButton.prototype.myFunction =
>> function(value /* : String */) /* : String */
>> {
>>                 return (("Don't " + this._privateVar) + value);
>> }
>>
>> /JSCode
>> //------------------------------------------------------------
>>
>> Thanks,
>>
>> EdB
>>
>>
>>
>> --
>> Ix Multimedia Software
>>
>> Jan Luykenstraat 27
>> 3521 VB Utrecht
>>
>> T. 06-51952295
>> I. www.ixsoftware.nl
>>
>
> --
> Michael Schmalle - Teoti Graphix, LLC
> http://www.teotigraphix.com
> http://blog.teotigraphix.com
>



-- 
Ix Multimedia Software

Jan Luykenstraat 27
3521 VB Utrecht

T. 06-51952295
I. www.ixsoftware.nl

Reply via email to