小编jon*_*sdf的帖子

在ExternalInterface.addCallback中注册的函数在Javascript中不可用

我正在开发一款Flash游戏,需要在页面上调用一些Javascript并从中获取数据.从Flash调用Javascript工作.从Javascript(通常)调用Flash函数不会.

我正在使用Gaia框架.

怎么了:

  1. swf与SWFObject一起加载
  2. Flash文件中有一个按钮.单击时,它用于ExternalInterface.call()调用Javascript函数.这有效.
  3. Javascript函数调用公开的Flash函数ExternalInterface.addCallback().
  4. 有时,Javascript会产生以下错误:TypeError: myFlash.testCallback is not a function.
  5. 发生错误时,它会影响注册的所有功能addCallback().Gaia及其中包含的一些库使用addCallback(),从Javascript调用这些函数也会产生TypeError.
  6. 在Flash中按下按钮之前等待很长时间并不能解决错误.
  7. 让Flash addCallback()定期重试并不能解决错误
  8. 发生错误时,ExternalInterface.available = trueExternalInterface.objectID包含Flash嵌入对象的正确名称.
  9. 发生错误时,document.getElementById('myflashcontent')正确返回Flash嵌入对象.

编辑添加:

  • 此问题出现在Firefox 3.6中,但不出现在Chrome或IE8中.我没有尝试旧版浏览器.
  • 我正在运行Flash播放器的Debug版本.
  • 我的电话ExternalInterface.addCallback()被包裹在一个try...catch街区.发生JS错误时,不会触发该catch块.这是一场无声的失败.
  • 在webhost上进行测试时发生错误,swf从与其所在页面相同的服务器加载.
  • 我设置allowScriptAccess = always.
  • 设置flash.system.Security.allowDomain("mydomain")不能解决错误.

从我的Page类:

public class MyPage extends AbstractPage
{
    // declarations of stage instances and class variables …
Run Code Online (Sandbox Code Playgroud)

javascript flash swfobject actionscript-3 externalinterface

10
推荐指数
1
解决办法
1万
查看次数

Windows 7上各个程序的峰值计

是否有可能获得Windows 7上各个程序的峰值仪表读数,如果是,如何获得?

使用WASAPI,可以通过环回设备捕获整个系统音频,但这并不区分不同程序的输出.这个问题涉及为单个指定应用程序捕获音频,但在处理捕获所有单独播放音频的程序时,答案似乎过高.这必须是可能的,因为SndVol可以做到这一点,如下图所示.问题是它是如何完成的?它是通过未暴露的API调用完成的,还是实际上可以通过WASAPI实现这样的东西?

在此输入图像描述

谢谢.

windows audio wasapi

10
推荐指数
1
解决办法
2757
查看次数

Actionscript-3 max和min之间的随机数

我用这段代码在min和max之间生成一个随机数:

return min + (max - min) * Math.random();
Run Code Online (Sandbox Code Playgroud)

它有效.然而,即使最大值为80,随机数通常在"1或3"之间也很少.

如何更好地分配所有范围内的随机数?

谢谢

random math actionscript-3

7
推荐指数
1
解决办法
4万
查看次数

使用静态成员函数而不是等效的非静态成员函数的优点?

我想知道当存在非静态等价物时使用静态成员函数是否有任何优点.它会导致更快的执行(因为不必关心所有成员变量),或者可能更少使用内存(因为没有包含在所有实例中)?

基本上,我正在看的函数是一个实用函数,用于旋转一个整数数组,表示像素颜色围绕任意中心点的任意度数.它被放置在我的抽象Bullet基类中,因为只有子弹将使用它,我不希望在某个实用程序类中调用它的开销.它有点太长了,并且在每个派生的子弹类中使用,使得内联可能不是一个好主意.您如何建议我定义此功能?作为Bullet的静态成员函数,Bullet的非静态成员函数,或者可能不作为Bullet的成员但在Bullet.h中的类外定义?各有哪些优缺点?

c++ performance static-methods

7
推荐指数
1
解决办法
1万
查看次数

你会怎么写一个程序来找到一个单词列表中最短的pangram?

给出一个包含字母az至少一次的单词列表,你会如何编写一个程序来找到由字符数(不计算空格)计算的最短的pangram作为单词的组合?

由于我不确定是否存在简短的答案,这不是代码高尔夫,而只是讨论如何处理这个问题.但是,如果你认为你可以设法写一个可以做到这一点的短程序,那么继续吧,这可能会变成代码高尔夫:)

algorithm pangram

6
推荐指数
1
解决办法
2969
查看次数

htmlText没有显示粗体或斜体字体

所以我有一个MovieClip资产,里面有一个动态文本字段.我将.fla导出为.swc以在Flash Builder 4中使用,并使用代码创建资产实例,从XML动态填充文本.

我的问题是,即使我启用了htmlText,粗体和斜体标签似乎也不起作用.我有一种感觉,因为当我在Flash CS4中创建资源时,文本字段会让您指定字体以及要使用的子集(常规,粗体,倾斜等).

有没有办法让htmlText正确渲染粗体和斜体标签,而不必完全重新思考我创建所有这些字段的方式?

actionscript-3 htmltext textfield dynamic-text

6
推荐指数
1
解决办法
1万
查看次数

Flex - 自定义组件 - 百分比宽度/高度

我正在尝试使用Flex组件框架创建自定义Flex组件:

http://www.adobe.com/livedocs/flex/3/html/help.html?content=ascomponents_advanced_3.html.

所有好的组件都允许您使用百分比值来定义它们的尺寸:

MXML:

TextInput width ="100%"

要么

运行时的Actionscript:

textinp.percentWidth = 100;

我的问题是如何在自定义组件的measure()方法中实现百分比宽度/高度?更具体地说,这些百分比在某个阶段转换为像素值,这是如何完成的?

components flex3 actionscript-3 custom-component

4
推荐指数
1
解决办法
3254
查看次数

需要使用 libpng 读取图像的帮助

这是我的功能...我不知道为什么它不起作用。生成的图像看起来与 .png 的样子完全不同。但也没有错误。

bool Bullet::read_png(std::string file_name, int pos)
{
    png_structp png_ptr;
    png_infop info_ptr;
    FILE *fp;

    if ((fp = fopen(file_name.c_str(), "rb")) == NULL) {
        return false;
    }

    png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);

    if (png_ptr == NULL) {
        fclose(fp);
        return false;
    }

    info_ptr = png_create_info_struct(png_ptr);
    if (info_ptr == NULL) {
        fclose(fp);
        png_destroy_read_struct(&png_ptr, NULL, NULL);
        return false;
    }

    if (setjmp(png_jmpbuf(png_ptr))) {
        png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
        fclose(fp);
        return false;
    }

    png_init_io(png_ptr, fp);

    png_read_png(png_ptr, info_ptr, PNG_TRANSFORM_STRIP_16 | PNG_TRANSFORM_SWAP_ALPHA | PNG_TRANSFORM_EXPAND, NULL);

    png_uint_32 width = png_get_image_width(png_ptr, …
Run Code Online (Sandbox Code Playgroud)

c++ image-processing alchemy libpng

3
推荐指数
1
解决办法
5545
查看次数

提供的DisplayObject必须是调用者的子级

我是一个新手,我已经在这个问题上进行了数周的训练,并且我无法掌握这一点.下面的简单代码给出了"提供的DisplayObject必须是调用者的子代"错误.

var square = new squareObj;
addChild(square);
addEventListener(Event.ENTER_FRAME, removeSquare);

function removeSquare(evt:Event):void {
    removeChild(square)
}
Run Code Online (Sandbox Code Playgroud)

squareObj是库中的一个movieclip,它是为AS导出的.如何更改此代码以使其正常工作?我想这是我对正确的oop的了解,我缺乏,所以任何关于这个问题的良好教程的链接都表示赞赏.

问候H.

object actionscript-3 addchild movieclip removechild

3
推荐指数
1
解决办法
2万
查看次数

有没有办法检查AS3中的整数是变高还是变低

我正在尝试创建一个监听变量(int或Number)的脚本,然后执行某些函数,无论变量是高还是低.因此,例如,如果数字越来越高,它将运行一个函数.如果它变低,它会运行另一个.

这可能在AS3中吗?有任何想法吗?

apache-flex flash actionscript-3

2
推荐指数
1
解决办法
206
查看次数

在Flash AS3中将对象置于前端

我有下面的代码,它基本上是屏幕上的动画对象,当翻转发生它暂停动画时,并显示一些信息.一切正常,但当它暂停时,我会像当前的对象一样"在顶部",所以其他项目在后面运行.

我看过setChildIndex,但没有太多运气.

package {

import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.geom.Point;
import flash.events.KeyboardEvent;
import flash.events.*;
import caurina.transitions.Tweener;
import fl.motion.Color;

public class carpurchase extends Sprite {

    public function carpurchase() {

        var carX = 570;


        //Set cars
        var car1:fullCar = new fullCar();
        car1.info.alpha = 0;
        //var c:Color = new Color();
        //c.setTint(0xff0000, 0.8);
        //car2.car.transform.colorTransform=c;
        car1.x = carX;
        car1.y = 280;
        car1.info.title.text = "test";
        car1.info.desc.text = "test";
        addChild(car1);
        car1.addEventListener(MouseEvent.ROLL_OVER, carPause);
        car1.addEventListener(MouseEvent.ROLL_OUT, carContinue);
        function car1Reset():void {
            Tweener.addTween(car1, {x:carX, time:0, onComplete:car1Tween});
        }
        function car1Tween():void { …
Run Code Online (Sandbox Code Playgroud)

flash actionscript-3

2
推荐指数
1
解决办法
2万
查看次数

将CURL转换为FLEX HTTPRequests

我试图从一些CURL代码转换为FLEX/ActionScript.由于我对CURL 100%无知,而且对于Flex有50%的无知,而对HTTP一般有90%的无知......我遇到了一些重大困难.

以下CURL代码来自http://code.google.com/p/ga-api-http-samples/source/browse/trunk/src/v2/accountFeed.sh

我完全有理由相信它运作正常.

       USER_EMAIL="myaccount@gmail.com" #Insert your Google Account email here
       USER_PASS="secretpass" #Insert your password here

       googleAuth="$(curl https://www.google.com/accounts/ClientLogin -s \
       -d Email=$USER_EMAIL \
       -d Passwd=$USER_PASS \
       -d accountType=GOOGLE \
       -d source=curl-accountFeed-v2 \
       -d service=analytics \
     | awk /Auth=.*/)"
       feedUri="https://www.google.com/analytics/feeds/accounts/default\
       ?prettyprint=true"

       curl $feedUri --silent \
       --header "Authorization: GoogleLogin $googleAuth" \
       --header "GData-Version: 2"
Run Code Online (Sandbox Code Playgroud)

以下是我将上述CURL转换为AS3的失败尝试

    var request:URLRequest=new URLRequest("https://www.google.com/analytics/feeds/accounts/default");
    request.method=URLRequestMethod.POST;
    var GoogleAuth:String="$(curl https://www.google.com/accounts/ClientLogin -s " + 
        "-d Email=myaccount@gmail.com " + 
        "-d Passwd=secretpass " + 
        "-d accountType=GOOGLE " + 
        "-d source=curl-accountFeed-v2" + 
        "-d …
Run Code Online (Sandbox Code Playgroud)

apache-flex https curl http actionscript-3

2
推荐指数
1
解决办法
3041
查看次数