我正在使用Flash TextField控件在Flash演示文稿中显示一些HTML内容,以便在大型触摸屏自助服务终端上显示.遗憾的是,如果显示的HTML内容中的任何图像标记指向不存在的图像,则会显示带有错误消息的对话框
Error #2044: Unhandled IOErrorEvent:. text=Error #2035: URL Not Found.
Run Code Online (Sandbox Code Playgroud)
我试图避免弹出对话.通过loader类加载内容的解决方案是捕获IOErrorEvent.IO_ERROR,但我已经尝试在TextField上监听,在舞台上,Main和loaderInfo都无济于事.我试过用try-catch包装整个东西,但这也行不通.
这是我用来寻找解决方案的简化代码:
package {
import flash.display.Sprite;
import flash.errors.IOError;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.text.TextField;
import flash.text.TextFieldType;
public class Main extends Sprite {
public function Main():void {
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void {
removeEventListener(Event.ADDED_TO_STAGE, init);
var html:TextField = new TextField();
html.type = TextFieldType.DYNAMIC;
html.multiline = true;
html.htmlText = "Bogus image: <img src=\"foo.jpg\" />";
addChild(html);
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:这是整个工作代码.
当然,对于动态内容等,您需要一个图像列表和一个生成处理程序的函数等. …
以下是否意味着动态TextFields不会被编入索引?
我们目前不附加 Flash文件加载的外部资源中的内容.如果您的Flash文件加载了HTML文件, XML文件,另一个SWF文件等,Google将单独索引该资源,但它不会被视为Flash文件中内容的一部分.
以下是否意味着仅将静态TextFields编入索引?
此时,不会对从资源文件动态加载的内容编制索引.我们已经注意到来自多个网站管理员的此功能请求,请在不久的将来更新中查找.
来自改进的Flash索引,Google博客
在Actionscript 3中,为什么getDefinitionByName()在文档说:
返回对name参数指定的类的类对象的引用.
基于此,我得出结论,返回的对象应该是Class而不是Object.有人可以告诉我为什么不是这样吗?
我正在尝试使用JavaScript调用在Flash swf中使用ExternalInterface声明的函数.它工作了一次,但突然间,它停止了工作.
我有一个Flash Player的调试版本,但Flash中没有出现错误.甚至不是"安全沙箱错误"或其他东西.我得到的唯一错误是JavaScript中的以下错误Error: Error in Actionscript. Use a try/catch block to find error.
我正在使用AS3,在Mac上为Flash Player 10导出并在Firefox 3/Safari 4上进行测试.
任何帮助将不胜感激.
有没有人能够成功实现服务以向FlashPlayer提供所需的套接字策略文件?
我正在运行Adobe提供的服务的Python实现
http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html
Run Code Online (Sandbox Code Playgroud)
并使用以下策略文件:
<?xml version="1.0" encoding="UTF-8"?>
<cross-domain-policy>
<site-control permitted-cross-domain-policies="master-only"/>
<allow-access-from domain="*" to-ports="*" secure="false"/>
</cross-domain-policy>
Run Code Online (Sandbox Code Playgroud)
并从Flash接收此消息:
[SecurityErrorEvent type="securityError" bubbles=false
cancelable=false eventPhase=2
text="Error #2048:
Security sandbox violation: http://www.mapopolis.com/family/Tree.swf
cannot load data from www.mapopolis.com:1900."]
Run Code Online (Sandbox Code Playgroud)
谢谢.
我刚刚开始在AS3编码,从专家那里得到一些反馈真的很棒; 在我的编码风格,我做错的事情,我可以改进的事情,最佳实践等等......如果你有一些额外的提示或技巧,那将是很好的.
这是我的第一个AS3代码,花了我5个小时,puh:
package {
import flash.display.Sprite;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.*;
import flash.errors.*;
import flash.display.MovieClip;
import gs.*;
import flash.display.Loader;
import net.stevensacks.preloaders.CircleSlicePreloader;
public class FlatSelector extends MovieClip {
var preloader:CircleSlicePreloader = new CircleSlicePreloader();
var imageLoader:Loader = new Loader();
var globalXML:XML;
public function FlatSelector() {
stage.addEventListener(Event.ENTER_FRAME, init);
building.alpha = 0;
}
public function init(event:Event):void {
stage.removeEventListener(Event.ENTER_FRAME, init);
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, handleXML);
loader.load(new URLRequest('http://localhost/boligvelger/flats.xml'));
TweenLite.to(building, 2, {alpha:1});
TweenLite.to(building.flat, 2, {alpha:0.5, tint:0x00FF23});
//var myTween:TweenLite = TweenLite.to(mc, 1, {x:200});
//var …Run Code Online (Sandbox Code Playgroud) 我正在为项目构建地图编辑器,需要绘制六边形并用纯色填充它.我的形状是正确的但是对于我的生活无法弄清楚如何填充它.我怀疑这可能是因为这个东西是Shape,Sprite还是UIComponent.这是我对多边形本身的看法:
import com.Polygon;
import mx.core.UIComponent;
public class greenFillOne extends UIComponent {
public var hexWidth:Number = 64;
public var hexLength:Number = 73;
public function greenFillOne() {
var hexPoly:Polygon = new Polygon;
hexPoly.drawPolygon(40,6,27+(hexWidth*.25),37,0x499b0e,1,30);
addChild(hexPoly);
}
}
Run Code Online (Sandbox Code Playgroud) 只是为了消除我的好奇心,isActionScript 3中保留关键字的反面是什么,如下例所示:
if (myObject is ArrayCollection) {
//Do stuff...
} else {
//Do something else...
}
Run Code Online (Sandbox Code Playgroud)
所以我可以这样做:
if (myObject isnotoperator ArrayCollection) {
//Do something else...
} else {
//Do stuff...
}
Run Code Online (Sandbox Code Playgroud)
感谢您的时间.
我想知道,AS3中如何实现异步?让我们Timer上课.计时器以异步方式运行并调度某些事件.似乎它为自己创造了一个新的线程.当计时器事件发生时调用的函数如何是线程安全的?如何在AS3中实现线程安全?
multithreading actionscript asynchronous thread-safety actionscript-3
因此,当空格键被按下时,我正试图制造太空飞船的激光器.我之前在一个纯粹的flex项目中做过这个,但最近得到了创意云,我正在尝试使用flash专业/ flash构建器重新创建相同的效果.
不幸的是,当我创建一个新的"激光"类实例并尝试用addChild()将它放在舞台上时似乎没有任何事情发生.
这是主文件/文档类
public class PlayerShip extends Sprite
{
private var laserTimer:Timer;
private var shipTime:Timer;
private var upKey:Boolean;
private var downKey:Boolean;
private var leftKey:Boolean;
private var rightKey:Boolean;
private var spacebar:Boolean;
private var utils:Utils = new Utils();
//tuning variables
private var MOVE_SPEED:int = 5;
private var REVERSE_SPEED:int = 3;
private var TURN_SPEED:int = 5;
private var laserEmitter:shipLasers = new shipLasers(stage);
public function PlayerShip():void
{
super();
addEventListener(Event.ENTER_FRAME, fly);
stage.addEventListener(KeyboardEvent.KEY_DOWN, movementKeysDown);
stage.addEventListener(KeyboardEvent.KEY_UP, movementKeysUp);
laserTimer = new Timer(1000/1000);
laserTimer.addEventListener(TimerEvent.TIMER, fireLasers);
laserTimer.start();
addChild(laserEmitter);
} …Run Code Online (Sandbox Code Playgroud) actionscript ×10
flash ×7
apache-flex ×2
flex3 ×2
asynchronous ×1
casting ×1
feedback ×1
fill ×1
javascript ×1
policy ×1
polygon ×1
security ×1
seo ×1
shape ×1
sockets ×1
uicomponents ×1