I currently only have 1 file being imported. The classes exist in a
library file that's included a few lines above the import statement.
Testing the same setup in a smaller application worked beautifully. It
almost seems like maybe the timing is off or there is a cache that I
haven't cleared or a memory issue exists. Not sure. Worked fine with the
nightly from a week ago.
On 7/28/2010 12:38 PM, Henry Minsky wrote:
When compiling <import> libraries for swf10, the compiler does things
in a slightly different order than the other runtimes. It compiles the
main app first, so that
the classes there are emitted to a tmp directory as intermediate as3
classes, and then it compiles each
<import> library against that directory , so that it can resolve any
references to those classes,
which will be external to the library.
One thing it was not designed to support explicitly was defining a
class in one <import> library and then subclassing it in another library.
Unfortunately you get subclasses being made for you all over the place
very easily now, because the compiler generates a new anonymous
subclass whenever you have an instance with a method or constraint or
new attribute on it.
Could that be what is happening? Do you have a base class defined in
one <import> library and then an instance of that class being used in
another <import> library, which might be generating an anonymous
subclass?
On Wed, Jul 28, 2010 at 12:25 PM, Ryan Maslar <[email protected]
<mailto:[email protected]>> wrote:
That's the kicker. I built a small test case and it compiles fine.
I'm starting to wonder if it could be memory issues. My
understanding was that compilation is sequential. If that's the
case the classes should be available. Hell, I would think they
should be available if they're in the import file as well.
On 7/28/2010 12:19 PM, Henry Minsky wrote:
If you are able to build a small test case you can send me, I
could try to track it down.
If you aren't able to reduce this to get a small test case, we
can try some other approaches.
On Wed, Jul 28, 2010 at 12:08 PM, Ryan Maslar
<[email protected] <mailto:[email protected]>> wrote:
It happens in swf10. swf8 compiles fine. I've even tried
duplicating the classes in the import library file (obviously
with slightly different names) and it still get a class
definition not found. Any way this could be a memory issue?
I've tried doing cache clears with no change.
Ryan
On 7/28/2010 12:04 PM, Henry Minsky wrote:
Which runtime are you compiling for? Does this happen in
more than one runtime?
On Wed, Jul 28, 2010 at 10:54 AM, Ryan Maslar
<[email protected] <mailto:[email protected]>> wrote:
Ok, so I grabbed the 5.0.x nightly on the 27th as I was
seeing some weird compiler issues. After installing and
transferring my code over, every class instance I have
in a stage=late import file says it can't find the class
definition. The compiler errors look like this:|
|
org.openlaszlo.sc.CompilerError:
resources/plugin_library.lzx: 132: Error: The definition
of base class $lzc$class_deviceComboAct was not found,
in line: dynamic class $lzc$class_m15374 extends
$lzc$class_deviceComboAct {
This class is defined in a compiled-in library file that
is included before the import statement.
'plugin_library.lzx' is the imported file. The code in
the imported file that apparently triggers the compiler
error would look like this.
<library>
<class name="testClass">
<deviceComboAct />
</class>
</library>
I can't seem to replicate with a test application that
is set up exactly the same way as the application having
the issue. What I would like to know is if anyone has
absolutely any clue why this would be an issue when it
wasn't occurring in a previous nightly build of 5.0.x.||
||
As always I appreciate the help.
--
Ryan Maslar
||
--
Henry Minsky
Software Architect
[email protected] <mailto:[email protected]>
--
Henry Minsky
Software Architect
[email protected] <mailto:[email protected]>
--
Henry Minsky
Software Architect
[email protected] <mailto:[email protected]>