gpt4 book ai didi

ios - 添加 ANE 时 Flex 对象大小不同

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:47:30 43 4
gpt4 key购买 nike

我在将 ANE(我自己构建的)添加到 Flex 移动项目时遇到问题。

问题是对象的大小与添加 ANE 之前不同。我从未使用过这个 ANE,我只是添加了它。

这是我添加 ANE 之前的图像:

enter image description here

添加 ANE 后的图像:

enter image description here

如您所见,整个应用程序的大小是不同的。您知道哪个可能是问题所在吗?

提前致谢

** 更新信息 **

ios 上的代码:

#import "FlashRuntimeExtensions.h"

FREContext eventContext;

FREObject init(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[])
{
eventContext = ctx;

NSLog(@"init");

return NULL;
}


void CameraExtContextInitializer(void* extData, const uint8_t* ctxType, FREContext ctx, uint32_t* numFunctionsToTest, const FRENamedFunction** functionsToSet)
{
NSLog(@"camera ext context initializer");
*numFunctionsToTest = 1;

FRENamedFunction* func = (FRENamedFunction*) malloc(sizeof(FRENamedFunction) * *numFunctionsToTest);

func[0].name = (const uint8_t*) "init";
func[0].functionData = NULL;
func[0].function = &init;

*functionsToSet = func;
}

void CameraExtensionUniversalInitializer(void** extDataToSet, FREContextInitializer* ctxInitializerToSet, FREContextFinalizer* ctxFinalizerToSet)
{
NSLog(@"Camera extension initializer");
*extDataToSet = NULL;
*ctxInitializerToSet = &CameraExtContextInitializer;
}

AS中库的代码:

package com.xxx.Controller
{
import flash.events.EventDispatcher;
import flash.events.IEventDispatcher;
import flash.events.StatusEvent;
import flash.external.ExtensionContext;

public class ReaderDeviceExtensionController extends EventDispatcher
{

private static var _instance:ReaderDeviceExtensionController;
private var extContext:ExtensionContext;

public function ReaderDeviceExtensionController(enforcer:SingletonEnforcer)
{
super();
extContext = ExtensionContext.createExtensionContext( "com.xxx.Controller", "" );

if ( !extContext ) {
throw new Error( "Reader device native extension is not supported on this platform." );
}

}

public static function get instance():ReaderDeviceExtensionController {
if ( !_instance ) {
_instance = new ReaderDeviceExtensionController( new SingletonEnforcer() );
_instance.init();
}

return _instance;
}

public function dispose():void {
extContext.dispose();
}

private function init():void {
extContext.call( "init" );
}
}
}

class SingletonEnforcer {

}

扩展.xml:

<extension xmlns="http://ns.adobe.com/air/extension/3.1"> 
<id>com.xxx.Controller</id>
<versionNumber>0.0.1</versionNumber>
<platforms>
<platform name="iPhone-ARM">
<applicationDeployment>
<nativeLibrary>libTestSimpleAne.a</nativeLibrary>
<initializer>CameraExtensionUniversalInitializer</initializer>
</applicationDeployment>
</platform>
</platforms>
</extension>

我使用以下 ADT 命令构建 ANE:

adt -package -target ane MWCameraNativeExtension.ane extension.xml -swc NativeDevicePluginForCamera.swc -platform iPhone-ARM -C ios .

我在 Flex 中的应用程序代码:

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" title="HTMLMainContent">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:Label x="346" y="290" fontSize="16" paddingLeft="20" text="HI HI HI"/>
</s:View>

最佳答案

这是在 iPad 3 上运行吗?我的猜测是您在使用 native 扩展时不小心解锁了视网膜分辨率。

Flash Builder/packager 使用的默认 iOS SDK 是不支持 iPad 3 视网膜分辨率的旧版本。因此,当您打包没有 native 扩展的应用程序时,您将获得 iPad 2 分辨率并且 iOS 可以缩放所有内容.当您使用 native 扩展并指定更新的 iOS SDK 时,它将自动使用设备的 native 分辨率。

尝试找出包含和不包含扩展名的 stage.stageWidth 和 stage.stageHeight。此外,检查项目属性 -> Flex Build Packaging -> Apple iOS -> Native Extensions -> Apple iOS SDK 框。如果已填充,那么您很可能遇到了我描述的问题。

关于ios - 添加 ANE 时 Flex 对象大小不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15009287/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com