随着围绕AIR 3中的本机扩展支持的所有新的炒作,我没有找到确认或否认可以在本机Android实现中包含和使用外部JAR的单一事物.
所有这些示例基本上都展示了嵌入内置Android API的能力.但是,如果有人想要使用数百个库中的一个使其更容易呢?当然看起来这应该是可能的.我将尝试概述我所做的事情,也许有人会发现一个缺陷:
"ActivityManager: Displayed com.me.androidapp/.AppEntry"
"mye_native: MyExtension.initialize", "mye_native: MyExtensionContext.createContext"
E dalvikvm: Could not find class 'com.thirdparty.SomeClass', referenced from method com.me.nativeExtentions.MyExtensionFunction.call
有任何想法吗?它似乎应该以这种方式工作.
我注意到的一件事是,当我从我的纯Java Android应用程序(也有第三方安卓库)中分离出APK和Dex时,看起来第三方的类已包含在其中(不仅仅是jar参考).当我使用我的Flex APK做同样的事情时,我发现只有我自己的Java类和Adobe的,而第三方无法找到我能看到的.
我在Adobe论坛上发布了这个,但我想我会试试SO智囊团.谢谢.
我试图使用JPEGEncoder将原始数据ByteArray转换为JPEG格式,但它在移动设备上的速度太慢(我在移动设备上测试过它).我怎样才能在java中做同样的事情?我将原始数据字节发送到java并使用java将其编码为JPEG - 我尝试将它们中的一些作为com.sun.*下的JpegImageEncoder.但它在jdk7中被折旧.我如何在java中执行此操作或者已经完成此类操作的Flex移动开发人员的任何建议?
更新:我尝试了以下代码,但我得到一个奇怪的结果:
public void rawToJpeg(byte[] rawBytes, int width, int height, File outputFile){
try{
BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
int count = 0;
for(int h=0;h<height;h++){
for(int w=0;w<width;w++){
bi.setRGB(w, h, rawBytes[count++]);
}
}
Graphics2D ig2 = bi.createGraphics();
Iterator imageWriters = ImageIO.getImageWritersByFormatName("jpeg");
ImageWriter imageWriter = (ImageWriter) imageWriters.next();
ImageOutputStream ios = ImageIO.createImageOutputStream(outputFile);
imageWriter.setOutput(ios);
imageWriter.write(bi);
}catch(Exception ex){
ex.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
结果:
PS它应该是我的照片顺便说一句:)
我想让我的移动spark textarea组件包装所有内容.我发现了mx_internal做这个的方法,但是我无法调用mx_internal :: getTextField().numLines方法 - 没有这样的......以前有人这样做了吗?
Adobe 的振动功能在iOS和Android上的Flex移动应用程序中运行良好,但是当我尝试在Windows 7上从Flash Builder 4.7启动AIR模拟器时,我收到错误:
这里是后一个截图的错误消息的副本:
Process terminated without establishing connection to debugger.
The content cannot be loaded because there was a problem loading an extension: Error: Requested extension com.adobe.Vibration is not supported for Windows-x86.
Launch command details: "C:\Program Files\Adobe\Adobe Flash Builder 4.7 (64 Bit)\sdks\4.6.0 (AIR 3.5)\bin\adl.exe" -runtime "C:\Program Files\Adobe\Adobe Flash Builder 4.7 (64 Bit)\sdks\4.6.0 (AIR 3.5)\runtimes\air\win" -profile extendedMobileDevice -screensize 640x920:640x960 -XscreenDPI 326 -XversionPlatform IOS -extdir "C:\Users\xxx\Adobe Flash Builder 4.7\.metadata\.plugins\com.adobe.flexbuilder.project.ui\ANEFiles\MyApp-Mobile\win32\" C:\Users\xxx\Documents\MyApp\mobile\bin-debug\MyApp-app.xml C:\Users\xxx\Documents\MyApp\mobile\bin-debug
Run Code Online (Sandbox Code Playgroud)
同时:
Adobe的另一个ANE - Adobe Gaming SDK …
在Flash Builder 4.6中,我创建了一个Flex Mobile AIR项目.
为什么两个按钮和滚动条都没有看到?
为什么我不能向下滑动以查看更多文本和2个按钮?
这是我完整而简单的源代码 -
"主视图" - Agreement.mxml:
<?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="HomeView">
<s:layout>
<s:VerticalLayout paddingTop="10" paddingBottom="10" paddingLeft="10" gap="10" />
</s:layout>
<s:Label text="Agreement" width="100%" textAlign="center" />
<s:Label width="100%">
<s:text>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean tincidunt rutrum felis eu tincidunt. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In auctor erat nec ligula vestibulum porttitor ornare quam facilisis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. …
Run Code Online (Sandbox Code Playgroud) 我是开发新手,想开发一个Android应用程序.我以前使用Adobe Flash Builder 4.6和Flex Mobile Project构建了一个应用程序.我最近在4.7中注意到Action Script Mobile Project有一个选项.
有人可以向我解释两者之间的区别以及利用或者利弊的利弊吗?
我正在使用ActionScript在Flash Mobile中开发一个项目.我有一个压缩的wav文件,我需要能够在Button Press动作中根据需要进行序列化和播放.下面是压缩wav文件的代码.
mic.removeEventListener(SampleDataEvent.SAMPLE_DATA, micSampleDataHandler);
btnRecord.setStyle("icon", recOff);
sampleCount++;
// save the raw PCM samples as a bare WAV file
var wav:ByteArray = new ByteArray();
var writer:WAVWriter = new WAVWriter();
writer.numOfChannels = 1;
writer.sampleBitRate = 16;
writer.samplingRate = 11025;
samples.position = 0;
writer.processSamples(wav, samples, 11025, 1);
wav.position = 0;
// zip the WAV file
var fzip:FZip = new FZip();
fzip.addFile(name + sampleCount.toString(), wav);
var zip:ByteArray = new ByteArray();
fzip.serialize(zip);
var recSpot:Object = {
id: null,
audio: zip,
name: "New Audio File …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下代码在移动Flex应用程序的底部添加ButtonBar:
CSS:
@namespace s "library://ns.adobe.com/flex/spark";
s|ActionBar, s|ButtonBar {
chromeColor: #0066CC;
color: #FFFFFF;
titleAlign: center;
}
Run Code Online (Sandbox Code Playgroud)
动作脚本:
<s:ButtonBar requireSelection="true"
width="100%"
bottom="0"
skinClass="spark.skins.mobile.TabbedViewNavigatorTabBarSkin">
<s:ArrayCollection>
<fx:Object label="???????" />
<fx:Object label="????" icon="{MONEY}" />
<fx:Object label="10" icon="{CALL}" />
</s:ArrayCollection>
</s:ButtonBar>
Run Code Online (Sandbox Code Playgroud)
不幸的是,字体在按钮标签处看起来很凹凸或模糊(在下面的屏幕截图的底部):
有谁知道,如何使ButtonBar标签字体再次成为常规?
我无法找到CSS设置.
更新:我搜索了AIR SDK的源代码(像ButtonBase.as,Label.as,ButtonBarSkin.as等文件)但仍然无法找到答案.
所以我正在添加一个简化的测试用例+下面的一个截图以及这个问题的赏金.
TestApp.mxml:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
applicationDPI="160">
<fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";
s|ActionBar, s|ButtonBar {
chromeColor: #0066CC;
color: #FFFFFF;
titleAlign: center;
}
</fx:Style>
<fx:Script>
<![CDATA[
import spark.events.IndexChangeEvent;
import spark.skins.mobile.TabbedViewNavigatorTabBarSkin;
private function handleTabs(event:IndexChangeEvent):void {
_tabs[2].label …
Run Code Online (Sandbox Code Playgroud) 我在Flex移动卡片游戏中使用applicationDPI:
<?xml version="1.0" encoding="utf-8"?>
<s:ViewNavigatorApplication
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
firstView="views.Menu"
applicationDPI="160"
initialize="init()">
<fx:Style source="Preferans.css" />
<fx:Script>
<![CDATA[
import spark.core.ContentCache;
public static const AVATAR_CACHE:ContentCache = new ContentCache();
public static var SCALE:Number;
public function init():void {
SCALE = runtimeDPI / applicationDPI;
}
]]>
</fx:Script>
</s:ViewNavigatorApplication>
Run Code Online (Sandbox Code Playgroud)
并根据它提供3种不同分辨率的资产:
<fx:Declarations>
<s:MultiDPIBitmapSource id="BACK"
source160dpi="@Embed('assets/icons/low-res/back.png')"
source240dpi="@Embed('assets/icons/mid-res/back.png')"
source320dpi="@Embed('assets/icons/high-res/back.png')"/>
</fx:Declarations>
Run Code Online (Sandbox Code Playgroud)
当我在Flash Builder 4.6中选择一个iPad模拟器时,结果仍然不太好看:
选择Google Nexus One会产生更好的效果:
在这里做什么,用什么来检测手机与平板设备?
检查屏幕分辨率在这里没有帮助 - 请参阅上面的iPad示例(低分辨率,但大屏幕).
我想在单击按钮时以编程方式退出(关闭)移动Flex应用程序.什么是ActionScript?