First I've created an embedded Virtual File System, as described here.

It generates this AS code:

package C_Run {}
package com.adobe.flascc.vfs {

    import com.adobe.flascc.vfs.*;
    import com.adobe.flascc.BinaryData

    public class myvfs extends InMemoryBackingStore {

        public function myvfs() {
            addDirectory("/data")
            addFile("/data/localization.en.afgpack", new     C_Run.ALC_FS_6D79766673202F646174612F6C6F63616C697A6174696F6E2E656E2E6166677061636B)
            addFile("/data/dataAudio.afgpack", new     C_Run.ALC_FS_6D79766673202F646174612F64617461417564696F2E6166677061636B)
            addFile("/data/data.afgpack", new     C_Run.ALC_FS_6D79766673202F646174612F646174612E6166677061636B)
        }    
    }
}

It is compiled into myvfs.abc. Then I'm trying to create custom console with this VFS. I've imported myvfs in Console.as:

import com.adobe.flascc.vfs.myvfs;

And created vfs object:

var my_vfs_embedded:InMemoryBackingStore = new myvfs(); 

So, the problem is that compiling Console.abc sometimes fails with error "Call to a possibly undefined method myvfs" and sometimes builds successfully with the same code. How can this be?

Console.abc is built by this command:

cd ./../../Engine/library/baselib/sources/flash &&  \
     java -jar $(FLASCC_FOR_EXT)/usr/lib/asc2.jar -merge -md -AS3 -strict -optimize \
    -import $(FLASCC_FOR_EXT)/usr/lib/builtin.abc \
    -import $(FLASCC_FOR_EXT)/usr/lib/playerglobal.abc \
    -import $(GLS3D_ABS)/install/usr/lib/libGL.abc \
    -import $(FLASCC_FOR_EXT)/usr/lib/ISpecialFile.abc \
    -import $(FLASCC_FOR_EXT)/usr/lib/IBackingStore.abc \
    -import $(FLASCC_FOR_EXT)/usr/lib/IVFS.abc \
    -import $(FLASCC_FOR_EXT)/usr/lib/InMemoryBackingStore.abc \
    -import $(FLASCC_FOR_EXT)/usr/lib/AlcVFSZip.abc \
    -import $(FLASCC_FOR_EXT)/usr/lib/CModule.abc \
    -import $(FLASCC_FOR_EXT)/usr/lib/C_Run.abc \
    -import $(FLASCC_FOR_EXT)/usr/lib/BinaryData.abc \
    -import $(FLASCC_FOR_EXT)/usr/lib/PlayerKernel.abc \
    -import $(BUILD_FULL_PATH)/myvfs.abc \
    Console.as -outdir $(BUILD_FULL_PATH) -out Console
有帮助吗?

解决方案 2

Seems like my VFS was too big for compiler. When I take less data everything was ok. So, I suppose it was a bug in compiler.

其他提示

myvfs.abc is located at BUILD_FULL_PATH, hinting that it might be built at the same time as Console.as. If the build order is not fully predictable, the myvfs.abc binary might be in an undetermined state when Console.as is compiled. This can happen if, for instance, you build myvfs.as and Console.as as different independent targets and are using multithreaded option in make (-j).

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top