My bad. I accidentally overwrote my copy of BasicJS.swc. After fixing some issues, I got my app to run using the latest dual changes.
All in all, switching to dual went a lot better than I expected. Great work, Alex! I think the switch to the dual approach was the right one. There’s still probably some rough edges to improve, but it’s definitely usable. Thanks, Harbs > On Jun 1, 2017, at 5:57 AM, Harbs <harbs.li...@gmail.com> wrote: > > Another weird issue: > >> /Users/harbs/Documents/git/PrintUI/printui-flexjs/PortedPrintUI/src/com/printui/dummy/view/Image.as(12): >> col: 15 interface method imageElement in interface IImage not implemented >> by class Image >> >> public class Image extends BinaryImage >> ^ >> >> /Users/harbs/Documents/git/PrintUI/printui-flexjs/PortedPrintUI/src/com/printui/dummy/view/Image.as(12): >> col: 15 interface method applyImageData in interface IImage not implemented >> by class Image >> >> public class Image extends BinaryImage >> > > org.apache.flex.html.BinaryImage which in tern subclasses > org.apache.flex.html.Image. org.apache.flex.html.Image implements these two > methods. I figured the compiler might be getting confused by the fact that > Image is named the same as an ancestor class, so I changed the name and I'm > getting the same error in additon to a null pointer error: > >> >> /Users/harbs/Documents/git/PrintUI/printui-flexjs/PortedPrintUI/src/com/printui/dummy/view/PUIImage.as(12): >> col: 15 interface method imageElement in interface IImage not implemented >> by class PUIImage >> >> public class PUIImage extends BinaryImage >> ^ >> >> /Users/harbs/Documents/git/PrintUI/printui-flexjs/PortedPrintUI/src/com/printui/dummy/view/PUIImage.as(12): >> col: 15 interface method applyImageData in interface IImage not implemented >> by class PUIImage >> >> public class PUIImage extends BinaryImage >> ^ >> >> /Users/harbs/Documents/git/PrintUI/printui-flexjs/PortedPrintUI/src/com/printui/view/components/DesignAreaComponents/drawnObjects/ImageObject.as(59): >> col: 3 java.lang.NullPointerException >> at >> org.apache.flex.compiler.internal.projects.FlexProject.isValidTypeConversion(FlexProject.java:2304) >> at >> org.apache.flex.compiler.internal.semantics.MethodBodySemanticChecker.checkImplicitConversion(MethodBodySemanticChecker.java:564) >> at >> org.apache.flex.compiler.internal.semantics.MethodBodySemanticChecker.checkImplicitConversion(MethodBodySemanticChecker.java:374) >> at >> org.apache.flex.compiler.internal.semantics.MethodBodySemanticChecker.checkAssignment(MethodBodySemanticChecker.java:246) >> at >> org.apache.flex.compiler.internal.as.codegen.ABCGeneratingReducer.reduce_assignToNameExpr_to_void_expression(ABCGeneratingReducer.java:2947) >> at >> org.apache.flex.compiler.internal.as.codegen.CmcEmitter.action_237(CmcEmitter.java:4451) >> at >> org.apache.flex.compiler.internal.as.codegen.CmcEmitter.dispatchAction(CmcEmitter.java:8067) >> at >> org.apache.flex.compiler.internal.as.codegen.CmcEmitter.reduceAntecedent(CmcEmitter.java:39127) >> at >> org.apache.flex.compiler.internal.as.codegen.CmcEmitter.dispatchAction(CmcEmitter.java:9362) >> at >> org.apache.flex.compiler.internal.as.codegen.CmcEmitter.reduceAntecedent(CmcEmitter.java:39127) >> at >> org.apache.flex.compiler.internal.as.codegen.CmcEmitter.reduce(CmcEmitter.java:39104) >> at >> org.apache.flex.compiler.internal.as.codegen.CmcEmitter.reduceSubgoals(CmcEmitter.java:39155) >> at >> org.apache.flex.compiler.internal.as.codegen.CmcEmitter.reduceAntecedent(CmcEmitter.java:39126) >> at >> org.apache.flex.compiler.internal.as.codegen.CmcEmitter.reduce(CmcEmitter.java:39104) >> at >> org.apache.flex.compiler.internal.as.codegen.CmcEmitter.reduceSubgoals(CmcEmitter.java:39146) >> at >> org.apache.flex.compiler.internal.as.codegen.CmcEmitter.reduceAntecedent(CmcEmitter.java:39126) >> at >> org.apache.flex.compiler.internal.as.codegen.CmcEmitter.reduce(CmcEmitter.java:39104) >> at >> org.apache.flex.compiler.internal.as.codegen.CmcEmitter.burm(CmcEmitter.java:39406) >> at >> org.apache.flex.compiler.internal.as.codegen.ABCGenerator.generateInstructions(ABCGenerator.java:228) >> at >> org.apache.flex.compiler.internal.as.codegen.ABCGenerator.generateMethodBodyForFunction(ABCGenerator.java:393) >> at >> org.apache.flex.compiler.internal.as.codegen.ABCGenerator.generateMethodBodyForFunction(ABCGenerator.java:347) >> at >> org.apache.flex.compiler.internal.as.codegen.ABCGenerator.generateFunction(ABCGenerator.java:262) >> at >> org.apache.flex.compiler.internal.as.codegen.ClassDirectiveProcessor.finishClassDefinition(ClassDirectiveProcessor.java:639) >> at >> org.apache.flex.compiler.internal.as.codegen.GlobalDirectiveProcessor.declareClass(GlobalDirectiveProcessor.java:430) >> at >> org.apache.flex.compiler.internal.as.codegen.DirectiveProcessor.processNode(DirectiveProcessor.java:206) >> at >> org.apache.flex.compiler.internal.as.codegen.DirectiveProcessor.traverse(DirectiveProcessor.java:188) >> at >> org.apache.flex.compiler.internal.as.codegen.GlobalDirectiveProcessor.declarePackage(GlobalDirectiveProcessor.java:455) >> at >> org.apache.flex.compiler.internal.as.codegen.DirectiveProcessor.processNode(DirectiveProcessor.java:223) >> at >> org.apache.flex.compiler.internal.as.codegen.DirectiveProcessor.traverse(DirectiveProcessor.java:188) >> at >> org.apache.flex.compiler.internal.as.codegen.ABCGenerator.generate(ABCGenerator.java:122) >> at >> org.apache.flex.compiler.internal.units.ASCompilationUnit.handleABCBytesRequest(ASCompilationUnit.java:389) >> at >> org.apache.flex.compiler.internal.units.CompilationUnitBase.processABCBytesRequest(CompilationUnitBase.java:876) >> at >> org.apache.flex.compiler.internal.units.CompilationUnitBase.access$300(CompilationUnitBase.java:109) >> at >> org.apache.flex.compiler.internal.units.CompilationUnitBase$4$1.call(CompilationUnitBase.java:313) >> at >> org.apache.flex.compiler.internal.units.CompilationUnitBase$4$1.call(CompilationUnitBase.java:309) >> at >> org.apache.flex.compiler.internal.units.requests.RequestMaker$1.call(RequestMaker.java:228) >> at >> org.apache.flex.compiler.internal.units.requests.RequestMaker$1.call(RequestMaker.java:222) >> at java.util.concurrent.FutureTask.run(FutureTask.java:266) >> at >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) >> at java.lang.Thread.run(Thread.java:745) > > > Any suggestions? > >> On Jun 1, 2017, at 12:38 AM, Harbs <harbs.li...@gmail.com> wrote: >> >> I just switched to dual and I’m getting lots of errors. These errors seem to >> be exactly what I was afraid of, and I’m not sure how to resolve without >> being restricted by naming of properties and methods. >> >> 1. I’m using a mask setter and getter for images it’s now giving override >> errors. >> 2. contains() is an incompatible override. >> 3. scaleX and scaleY >> 4. blendMode >> 5. rotation >> 6. filters >> 7. mouseEnabled >> etc…. >> >> I thought there was supposed to be something built into the compiler to hide >> the flash-specific APIs and allow reuse of them. >> >> Am I missing something? >> >> Thanks, >> Harbs >