草庐IT

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

coder 2024-01-16 原文

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

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

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

添加 ANE 后的图像:

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

提前致谢

** 更新信息 **

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/

有关ios - 添加 ANE 时 Flex 对象大小不同的更多相关文章

  1. ruby - 如何从 ruby​​ 中的字符串运行任意对象方法? - 2

    总的来说,我对ruby​​还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用

  2. ruby-on-rails - 在 Rails 中将文件大小字符串转换为等效千字节 - 2

    我的目标是转换表单输入,例如“100兆字节”或“1GB”,并将其转换为我可以存储在数据库中的文件大小(以千字节为单位)。目前,我有这个:defquota_convert@regex=/([0-9]+)(.*)s/@sizes=%w{kilobytemegabytegigabyte}m=self.quota.match(@regex)if@sizes.include?m[2]eval("self.quota=#{m[1]}.#{m[2]}")endend这有效,但前提是输入是倍数(“gigabytes”,而不是“gigabyte”)并且由于使用了eval看起来疯狂不安全。所以,功能正常,

  3. ruby - 我需要将 Bundler 本身添加到 Gemfile 中吗? - 2

    当我使用Bundler时,是否需要在我的Gemfile中将其列为依赖项?毕竟,我的代码中有些地方需要它。例如,当我进行Bundler设置时:require"bundler/setup" 最佳答案 没有。您可以尝试,但首先您必须用鞋带将自己抬离地面。 关于ruby-我需要将Bundler本身添加到Gemfile中吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4758609/

  4. ruby-on-rails - 按天对 Mongoid 对象进行分组 - 2

    在控制台中反复尝试之后,我想到了这种方法,可以按发生日期对类似activerecord的(Mongoid)对象进行分组。我不确定这是完成此任务的最佳方法,但它确实有效。有没有人有更好的建议,或者这是一个很好的方法?#eventsisanarrayofactiverecord-likeobjectsthatincludeatimeattributeevents.map{|event|#converteventsarrayintoanarrayofhasheswiththedayofthemonthandtheevent{:number=>event.time.day,:event=>ev

  5. ruby - 将 Bootstrap Less 添加到 Sinatra - 2

    我有一个ModularSinatra应用程序,我正在尝试将Bootstrap添加到应用程序中。get'/bootstrap/application.css'doless:"bootstrap/bootstrap"end我在views/bootstrap中有所有less文件,包括bootstrap.less。我收到这个错误:Less::ParseErrorat/bootstrap/application.css'reset.less'wasn'tfound.Bootstrap.less的第一行是://CSSReset@import"reset.less";我尝试了所有不同的路径格式,但它

  6. ruby-on-rails - 如何验证非模型(甚至非对象)字段 - 2

    我有一个表单,其中有很多字段取自数组(而不是模型或对象)。我如何验证这些字段的存在?solve_problem_pathdo|f|%>... 最佳答案 创建一个简单的类来包装请求参数并使用ActiveModel::Validations。#definedsomewhere,atthesimplest:require'ostruct'classSolvetrue#youcouldevencheckthesolutionwithavalidatorvalidatedoerrors.add(:base,"WRONG!!!")unlesss

  7. Ruby 写入和读取对象到文件 - 2

    好的,所以我的目标是轻松地将一些数据保存到磁盘以备后用。您如何简单地写入然后读取一个对象?所以如果我有一个简单的类classCattr_accessor:a,:bdefinitialize(a,b)@a,@b=a,bendend所以如果我从中非常快地制作一个objobj=C.new("foo","bar")#justgaveitsomerandomvalues然后我可以把它变成一个kindaidstring=obj.to_s#whichreturns""我终于可以将此字符串打印到文件或其他内容中。我的问题是,我该如何再次将这个id变回一个对象?我知道我可以自己挑选信息并制作一个接受该信

  8. ruby - 续集在添加关联时访问many_to_many连接表 - 2

    我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以

  9. ruby-on-rails - 如果 Object::try 被发送到一个 nil 对象,为什么它会起作用? - 2

    如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象

  10. ruby-on-rails - 未在 Ruby 中初始化的对象 - 2

    我在Rails工作并有以下类(class):classPlayer当我运行时bundleexecrailsconsole然后尝试:a=Player.new("me",5.0,"UCLA")我回来了:=>#我不知道为什么Player对象不会在这里初始化。关于可能导致此问题的操作/解释的任何建议?谢谢,马里奥格 最佳答案 havenoideawhythePlayerobjectwouldn'tbeinitializedhere它没有初始化很简单,因为你还没有初始化它!您已经覆盖了ActiveRecord::Base初始化方法,但您没有调

随机推荐