Yep man you did something great, I would like do understand it more now, so if you can check in an give some pointers to follow what you did would be greater even :-)
Cheers, -Fred --- Message initial --- De : "Alex Harui" <aha...@adobe.com> Envoyé : 9 juin 2015 20:15 A : dev@flex.apache.org Objet : Re: [FalconJX] Vanilla compiler, all externs parsing and contained in SWC :) Freakin’ awesome! Can you check it in so I can try to integrate it into the builds? -Alex On 6/9/15, 11:20 AM, "Michael Schmalle" <teotigraphix...@gmail.com> wrote: >Oh yeah, here is the class list; > >AlphaFilter.as >AlphaImageLoaderFilter.as >ANGLE_instanced_arrays.as >Arguments.as >Array.as >ArrayBuffer.as >ArrayBufferView.as >Attr.as >Audio.as >AudioBuffer.as >AudioBufferSourceNode.as >AudioChannelMerger.as >AudioChannelSplitter.as >AudioContext.as >AudioDestinationNode.as >AudioGain.as >AudioListener.as >AudioNode.as >AudioPannerNode.as >AudioParam.as >AudioProcessingEvent.as >AudioSourceNode.as >BatteryManager.as >BiquadFilterNode.as >Blob.as >BlobBuilder.as >Boolean.as >BoxObject.as >BufferSource.as >CanvasGradient.as >CanvasPattern.as >CanvasPixelArray.as >CanvasRenderingContext2D.as >CaretPosition.as >CDATASection.as >CharacterData.as >chrome.as >ChromeBooleanEvent.as >ChromeCsiInfo.as >ChromeEvent.as >ChromeLoadTimes.as >ChromeNumberEvent.as >ChromeObjectEvent.as >ChromeStringArrayEvent.as >ChromeStringEvent.as >ChromeStringStringEvent.as >ClientInformation.as >ClientRect.as >ClientRectList.as >ClipboardData.as >Comment.as >Console.as >ControlRange.as >ConvolverNode.as >Counter.as >CSSCharsetRule.as >CSSFontFaceRule.as >CSSImportRule.as >CSSInterface.as >CSSMatrix.as >CSSMediaRule.as >CSSPageRule.as >CSSPrimitiveValue.as >CSSProperties.as >CSSRule.as >CSSRuleList.as >CSSStyleDeclaration.as >CSSStyleRule.as >CSSStyleSheet.as >CSSUnknownRule.as >CSSValue.as >CSSValueList.as >CustomEvent.as >CustomEventInit.as >Database.as >DatabaseCallback.as >DataTransfer.as >DataTransferItem.as >DataTransferItemList.as >DataView.as >Date.as >DedicatedWorkerGlobalScope.as >DelayNode.as >DeviceAcceleration.as >DeviceMotionEvent.as >DeviceOrientationEvent.as >DeviceRotationRate.as >DirectoryEntry.as >DirectoryReader.as >Document.as >DocumentCSS.as >DocumentEvent.as >DocumentFragment.as >DocumentRange.as >DocumentStyle.as >DocumentType.as >DOMApplicationCache.as >DOMConfiguration.as >DOMError.as >DOMErrorHandler.as >DOMException.as >DOMImplementation.as >DOMImplementationCSS.as >DOMImplementationList.as >DOMImplementationSource.as >DOMLocator.as >DOMStringList.as >DOMTokenList.as >DOMURL.as >DragEvent.as >DynamicsCompressorNode.as >Element.as >ElementCSSInlineStyle.as >Entity.as >EntityReference.as >Entry.as >Error.as >ErrorEvent.as >ErrorEventInit.as >EvalError.as >Event.as >EventInit.as >EventListener.as >EventTarget.as >ExceptionCode.as >EXT_texture_filter_anisotropic.as >ExtendableEvent.as >File.as >FileEntry.as >FileError.as >FileList.as >FileReader.as >FileSaver.as >FileSystem.as >FileWriter.as >Float32Array.as >Float64Array.as >FontFace.as >FontFaceDescriptors.as >FontFaceLoadStatus.as >FontFaceSet.as >FontFaceSetLoadStatus.as >FormData.as >Function.as >GainNode.as >Generator.as >Geolocation.as >GeolocationCoordinates.as >GeolocationPosition.as >GeolocationPositionError.as >GeolocationPositionOptions.as >GestureEvent.as >HashChangeEvent.as >History.as >HTMLAnchorElement.as >HTMLAppletElement.as >HTMLAreaElement.as >HTMLAudioElement.as >HTMLBaseElement.as >HTMLBaseFontElement.as >HTMLBodyElement.as >HTMLBRElement.as >HTMLButtonElement.as >HTMLCanvasElement.as >HTMLCollection.as >HTMLContentElement.as >HTMLDetailsElement.as >HTMLDialogElement.as >HTMLDirectoryElement.as >HTMLDivElement.as >HTMLDListElement.as >HTMLDocument.as >HTMLElement.as >HTMLEmbedElement.as >HTMLFieldSetElement.as >HTMLFilter.as >HTMLFiltersCollection.as >HTMLFontElement.as >HTMLFormElement.as >HTMLFrameElement.as >HTMLFrameSetElement.as >HTMLHeadElement.as >HTMLHeadingElement.as >HTMLHRElement.as >HTMLHtmlElement.as >HTMLIFrameElement.as >HTMLImageElement.as >HTMLInputElement.as >HTMLIsIndexElement.as >HTMLLabelElement.as >HTMLLegendElement.as >HTMLLIElement.as >HTMLLinkElement.as >HTMLMapElement.as >HTMLMediaElement.as >HTMLMenuElement.as >HTMLMenuItemElement.as >HTMLMetaElement.as >HTMLModElement.as >HTMLObjectElement.as >HTMLOListElement.as >HTMLOptGroupElement.as >HTMLOptionElement.as >HTMLOptionsCollection.as >HTMLParagraphElement.as >HTMLParamElement.as >HTMLPictureElement.as >HTMLPreElement.as >HTMLQuoteElement.as >HTMLScriptElement.as >HTMLSelectElement.as >HTMLShadowElement.as >HTMLSourceElement.as >HTMLSpanElement.as >HTMLStyleElement.as >HTMLTableCaptionElement.as >HTMLTableCellElement.as >HTMLTableColElement.as >HTMLTableElement.as >HTMLTableRowElement.as >HTMLTableSectionElement.as >HTMLTemplateElement.as >HTMLTextAreaElement.as >HTMLTitleElement.as >HTMLUListElement.as >HTMLVideoElement.as >IceCandidate.as >IDBCursor.as >IDBCursorWithValue.as >IDBDatabase.as >IDBDatabaseException.as >IDBFactory.as >IDBIndex.as >IDBKeyRange.as >IDBKeyType.as >IDBObjectStore.as >IDBOpenDBRequest.as >IDBRequest.as >IDBTransaction.as >IDBVersionChangeEvent.as >Image.as >ImageData.as >int.as >Int8Array.as >Int16Array.as >Int32Array.as >Iterable.as >Iterator.as >JavaScriptAudioNode.as >JSONType.as >KeyboardEvent.as >KeyboardEventInit.as >LinkStyle.as >LocalFileSystem.as >Location.as >Math.as >MediaConstraints.as >MediaConstraintSet_.as >MediaConstraintSetInterface_.as >MediaConstraintsInterface_.as >MediaElementAudioSourceNode.as >MediaError.as >MediaList.as >MediaQueryList.as >MediaQueryListListener.as >MediaStream.as >MediaStreamAudioDestinationNode.as >MediaStreamAudioSourceNode.as >MediaStreamConstraints.as >MediaStreamConstraintsInterface_.as >MediaStreamEvent.as >MediaStreamTrack.as >MediaStreamTrackEvent.as >MediaStreamTrackState.as >MediaTrackConstraints.as >MediaTrackConstraintSet.as >MediaTrackConstraintSetInterface_.as >MediaTrackConstraintsInterface_.as >MemoryInfo.as >MessageChannel.as >MessageEvent.as >MessagePort.as >MessageSender.as >Metadata.as >MimeType.as >MimeTypeArray.as >MouseEvent.as >MouseEventInit.as >MSCSSMatrix.as >MutationEvent.as >MutationObserver.as >MutationObserverInit.as >MutationRecord.as >NamedNodeMap.as >NameList.as >Navigator.as >NavigatorUserMediaError.as >Node.as >NodeFilter.as >NodeIterator.as >NodeList.as >Notation.as >Notification.as >NotificationCenter.as >NotificationEvent.as >NotificationOptions.as >NotificationPermissionCallback.as >Number.as >Object.as >ObjectPropertyDescriptor.as >OES_depth_texture.as >OES_element_index_uint.as >OES_standard_derivatives.as >OES_texture_float.as >OES_texture_half_float.as >OES_vertex_array_object.as >OfflineAudioCompletionEvent.as >OfflineAudioContext.as >OscillatorNode.as >PageTransitionEvent.as >Performance.as >PerformanceEntry.as >PerformanceMemory.as >PerformanceNavigation.as >PerformanceResourceTiming.as >PerformanceTiming.as >PeriodicWave.as >Plugin.as >PluginArray.as >PopStateEvent.as >Port.as >ProcessingInstruction.as >ProgressEvent.as >ProgressEventInit.as >Promise.as >Range.as >RangeError.as >RangeException.as >RealtimeAnalyserNode.as >Rect.as >ReferenceError.as >RegExp.as >RelatedEvent.as >RGBColor.as >RTCConfiguration.as >RTCConfigurationInterface_.as >RTCConfigurationRecord_.as >RTCDataChannel.as >RTCDataChannelEvent.as >RTCDataChannelInit.as >RTCDataChannelInitInterface_.as >RTCDataChannelInitRecord_.as >RTCIceCandidate.as >RTCIceConnectionState.as >RTCIceGatheringState.as >RTCIceServer.as >RTCIceServerInterface_.as >RTCIceServerRecord_.as >RTCPeerConnection.as >RTCPeerConnectionErrorCallback.as >RTCPeerConnectionIceEvent.as >RTCSdpType.as >RTCSessionDescription.as >RTCSessionDescriptionCallback.as >RTCSignalingState.as >RTCStatsCallback.as >RTCStatsElement.as >RTCStatsReport.as >RTCStatsResponse.as >RTCVoidCallback.as >Screen.as >ScriptProcessorNode.as >ScriptProfile.as >ScriptProfileNode.as >Selection.as >ShadowRoot.as >SharedWorker.as >SharedWorkerGlobalScope.as >SourceInfo.as >SQLError.as >SQLResultSet.as >SQLResultSetRowList.as >SQLStatementCallback.as >SQLTransaction.as >StereoPannerNode.as >Storage.as >StorageEvent.as >StorageInfo.as >StorageQuota.as >String.as >StyleSheet.as >StyleSheetList.as >symbol.as >SyntaxError.as >Tab.as >Text.as >TextDecoder.as >TextEncoder.as >TextMetrics.as >TextRange.as >TextTrack.as >TextTrackCue.as >TextTrackCueList.as >TextTrackList.as >Thenable.as >TimeRanges.as >Touch.as >TouchEvent.as >TouchList.as >Transferable.as >TraversalDocument.as >TreeWalker.as >TypeError.as >TypeInfo.as >UIEvent.as >UIEventInit.as >uint.as >Uint8Array.as >Uint8ClampedArray.as >Uint16Array.as >Uint32Array.as >URIError.as >URL.as >UserDataHandler.as >ValidityState.as >VideoPlaybackQuality.as >ViewCSS.as >VisibilityState.as >VTTCue.as >WaveShaperNode.as >WaveTable.as >WEBGL_compressed_texture_s3tc.as >WEBGL_debug_renderer_info.as >WEBGL_debug_shaders.as >WEBGL_lose_context.as >WebGLActiveInfo.as >WebGLBuffer.as >WebGLContextAttributes.as >WebGLContextEvent.as >WebGLFramebuffer.as >WebGLObject.as >WebGLProgram.as >WebGLRenderbuffer.as >WebGLRenderingContext.as >WebGLShader.as >WebGLShaderPrecisionFormat.as >WebGLTexture.as >WebGLUniformLocation.as >WebGLVertexArrayObjectOES.as >WebKitAnimationEvent.as >webkitAudioContext.as >webkitAudioPannerNode.as >WebKitBlobBuilder.as >WebKitCSSMatrix.as >webkitIDBCursor.as >webkitIDBDatabaseException.as >webkitIDBKeyRange.as >webkitIDBRequest.as >webkitIDBTransaction.as >webkitIDBVersionChangeEvent.as >webkitOfflineAudioContext.as >WebKitPoint.as >webkitURL.as >WebSocket.as >WebWorker.as >WheelEvent.as >WheelEventInit.as >Window.as >WindowLocalStorage.as >WindowSessionStorage.as >Worker.as >WorkerGlobalScope.as >WorkerLocation.as >XDomainRequest.as >XMLDOMDocument.as >XMLHttpRequest.as >XMLHttpRequestEventTarget.as >XMLHttpRequestUpload.as >XPathEvaluator.as >XPathException.as >XPathExpression.as >XPathNamespace.as >XPathNSResolver.as >XPathResult.as > > >On Tue, Jun 9, 2015 at 2:20 PM, Michael Schmalle ><teotigraphix...@gmail.com> >wrote: > >> Hey, >> >> Well I spent the whole day getting this working and did a Web Audio >> experiment as well! Wow, code completion in class form for Audio apps, I >> think I am hooked. :) >> >> 1. AS >> 2 .JS (around a 2M SWC for everything) >> 3. List of classes currently compiled >> >> This thing is pretty stable compiling this mess of JS in all the files >> below. >> >> WebGL and HTML5 is in there as well. :) >> >> Mike >> >> >> ------------------------------------------------------------- >> Extern Libs in SWC >> ------------------------------------------------------------- >> >> model.addExternal("es3"); >> model.addExternal("es5"); >> model.addExternal("es6"); >> >> model.addExternal("w3c_anim_timing"); >> model.addExternal("w3c_audio"); >> model.addExternal("w3c_batterystatus"); >> model.addExternal("w3c_css"); >> model.addExternal("w3c_css3d"); >> model.addExternal("w3c_device_sensor_event"); >> model.addExternal("w3c_dom1"); >> model.addExternal("w3c_dom2"); >> model.addExternal("w3c_dom3"); >> model.addExternal("w3c_elementtraversal"); >> model.addExternal("w3c_encoding"); >> model.addExternal("w3c_event"); >> model.addExternal("w3c_event3"); >> model.addExternal("w3c_geolocation"); >> model.addExternal("w3c_indexeddb"); >> model.addExternal("w3c_navigation_timing"); >> model.addExternal("w3c_range"); >> model.addExternal("w3c_rtc"); >> model.addExternal("w3c_selectors"); >> //model.addExternal("w3c_serviceworker"); >> //model.addExternal("w3c_webcrypto"); >> model.addExternal("w3c_xml"); >> >> //model.addExternal("fetchapi"); >> >> model.addExternal("window"); >> >> model.addExternal("ie_dom"); >> model.addExternal("gecko_dom"); >> >> model.addExternal("webkit_css"); >> model.addExternal("webkit_dom"); >> model.addExternal("webkit_event"); >> model.addExternal("webkit_notifications"); >> >> model.addExternal("iphone"); >> model.addExternal("chrome"); >> model.addExternal("flash"); >> >> model.addExternal("page_visibility"); >> model.addExternal("fileapi"); >> model.addExternal("html5"); >> >> model.addExternal("webgl"); >> model.addExternal("webstorage"); >> >> >> >> >> ------------------------------------------------------------- >> AS >> ------------------------------------------------------------- >> >> package >> { >> >> import ui.ButtonFactory; >> >> public class Main >> { >> public var factory:ButtonFactory; >> >> private var _audioContext:AudioContext; >> private var sound:ArrayBuffer; >> >> public function Main() >> { >> factory = new ButtonFactory(); >> >> var button:Element = factory.createButton(function ():void { >> button.textContent = "Say Hello FalconJX!"; >> window.alert("Hello browser from FalconJX!"); >> }); >> button.textContent = "Say Hello"; >> document.body.appendChild(button); >> >> var n:Number = Math.ceil(420); >> button.tabIndex = 1; >> //ButtonFactory.foo(); >> >> var t:Touch = new Touch(); >> t.pageY = 3; >> >> var context:AudioContext; >> try { >> _audioContext = new AudioContext(); >> } >> catch (e:Error) { >> alert('Web Audio API is not supported in this browser') >> } >> >> loadSound('/foo/bark.wav'); >> } >> >> private function loadSound(url:String):void >> { >> var request:XMLHttpRequest = new XMLHttpRequest(); >> request.open('GET', url, true); >> request.responseType = 'arraybuffer'; >> >> // Decode async >> request['onload'] = function () { >> _audioContext.decodeAudioData(request.response, >> function >> (buffer:ArrayBuffer):void { >> sound = buffer; >> playSound(); >> }, onError); >> }; >> >> request.send(); >> } >> >> private function playSound():void >> { >> var source:AudioBufferSourceNode = >> _audioContext.createBufferSource(); >> source.connect(_audioContext.destination); >> source.start(0); >> } >> >> private function onError():void >> { >> >> } >> } >> >> >> >> ------------------------------------------------------------- >> JS >> ------------------------------------------------------------- >> >> >> /** >> * Main >> * >> * @fileoverview >> * >> * @suppress {checkTypes} >> */ >> >> goog.provide('Main'); >> >> goog.require('org_apache_flex_utils_Language'); >> >> >> >> /** >> * @constructor >> */ >> Main = function() { >> var self = this; >> this.factory = new ui_ButtonFactory(); >> var /** @type {Element} */ button = >>this.factory.createButton(function() >> { >> button.textContent = "Say Hello FalconJX!"; >> window.alert("Hello browser from FalconJX!"); >> }); >> button.textContent = "Say Hello"; >> document.body.appendChild(button); >> var /** @type {number} */ n = Math.ceil(420); >> button.tabIndex = 1; >> var /** @type {Touch} */ t = new Touch(); >> t.pageY = 3; >> var /** @type {AudioContext} */ context; >> try { >> this._audioContext = new AudioContext(); >> } catch (e) { >> alert('Web Audio API is not supported in this browser'); >> } >> this.loadSound('/foo/bark.wav'); >> }; >> >> >> /** >> * @expose >> * @type {ui_ButtonFactory} >> */ >> Main.prototype.factory; >> >> >> /** >> * @private >> * @type {AudioContext} >> */ >> Main.prototype._audioContext; >> >> >> /** >> * @private >> * @type {ArrayBuffer} >> */ >> Main.prototype.sound; >> >> >> /** >> * @private >> * @param {string} url >> */ >> Main.prototype.loadSound = function(url) { >> var self = this; >> var /** @type {XMLHttpRequest} */ request = new XMLHttpRequest(); >> request.open('GET', url, true); >> request.responseType = 'arraybuffer'; >> request['onload'] = function() { >> self._audioContext.decodeAudioData(request.response, >>function(buffer) { >> self.sound = buffer; >> self.playSound(); >> }, goog.bind(self.onError, this)); >> }; >> request.send(); >> }; >> >> >> /** >> * @private >> */ >> Main.prototype.playSound = function() { >> var /** @type {AudioBufferSourceNode} */ source = >> this._audioContext.createBufferSource(); >> source.connect(this._audioContext.destination); >> source.start(0); >> }; >> >> >> /** >> * @private >> */ >> Main.prototype.onError = function() { >> }; >> >> >> /** >> * Metadata >> * >> * @type {Object.<string, Array.<Object>>} >> */ >> Main.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'Main', qName: >> 'Main'}] }; >> >> >> >> >> >> Mike >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >>