我正在 Flash Builder 中构建,大约 1 小时前才开始学习动作脚本;我似乎找不到快速学习这个主题的好资源。首要目标,应该是一个简单的任务:让这个东西显示图像。它似乎正确加载了图像(它显然弄清楚了编码),并且编译得很好,但是当它在 Firefox 中加载时,我得到的只是一个空白的白色屏幕(Flash 已启用并且工作正常。)。有人可以帮忙吗?在此处填写 n00b。我在 java、c#、c、html、php 等方面经验丰富,但完整的 actionscript/flash n00b。
package
{
import flash.display.Sprite;
import flash.display.Shape;
import flash.display.Bitmap;
public class images extends Sprite
{
public function images()
{
drawIcon();
}
private var sp:Shape;
[Embed(source="E:/Documents/Shapemakr/ebayPics/July29_TreeImagesForFBbuilding/IMG_3294.JPG")]
private var contentIconClass:Class;
private var contentIcon:Bitmap = new contentIconClass ();
// ...
private function drawIcon():void{
sp.graphics.beginBitmapFill(contentIcon.bitmapData);
sp.graphics.drawRect(20, 35, 13, 13);
sp.graphics.endFill();
}
}
}
好的,这是我的新代码。似乎/应该/将其添加到“电影”中,但我什么也看不到。似乎编译得很好(顺便说一句,这是一张 1600x1200 的图片。不确定编程中的“小图标”大小是否与它有关。)。
package
{
import flash.display.Sprite;
import flash.display.Shape;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.MovieClip;
public class images extends MovieClip
{
public function images()
{
drawIcon();
//var defaultImage:libraryImages = new libraryImages(469, 60);
var myImage:Bitmap = contentIcon;
addChild(myImage);
}
private var sp:Shape;
[Embed(source="E:/Documents/Shapemakr/ebayPics/July29_TreeImagesForFBbuilding/IMG_3294.JPG")]
private var contentIconClass:Class;
private var contentIcon:Bitmap = new contentIconClass ();
private function drawIcon():void{
sp.graphics.beginBitmapFill(contentIcon.bitmapData);
sp.graphics.drawRect(20, 35, 13, 13);
sp.graphics.endFill();
}
}
}
编辑:谢谢糟糕的感觉!将drawRect中的size参数改成图片大小后,就可以了!现在只需要缩小图片,从 URL 加载它,并使其可点击到 URL。如果我能通过谷歌搜索了解我现在理解的基础知识,似乎应该是可行的。
新代码:
package
{
import flash.display.Sprite;
import flash.display.Shape;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.MovieClip;
public class images extends MovieClip
{
public function images()
{
/*
drawIcon();
//var defaultImage:libraryImages = new libraryImages(469, 60);
var myImage:Bitmap = contentIcon;
addChild(myImage);*/
sp = new Shape(); //instantiate a new shape
addChild(sp); //add it to the display so it can be seen
drawIcon();
}
private var sp:Shape;
[Embed(source="E:/Documents/Shapemakr/ebayPics/July29_TreeImagesForFBbuilding/IMG_3294.JPG")]
private var contentIconClass:Class;
private var contentIcon:Bitmap = new contentIconClass ();
private function drawIcon():void{
sp.graphics.beginBitmapFill(contentIcon.bitmapData);
sp.graphics.drawRect(20, 35, 1600, 1200);
sp.graphics.endFill();
}
}
}
编辑:哇,再次感谢!这个新代码正是我需要做的,现在我只需要弄清楚如何操纵加载器来改变大小和位置。我敢肯定,研究/摆弄应该是可行的!
package
{
import flash.display.Sprite;
import flash.display.Shape;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.MovieClip;
import flash.events.*;
import flash.net.*;
import flash.display.*;
public class images extends Sprite
{
public function images()
{
//to load an image, you can use the `Loader` class:
var loader:Loader = new Loader();
loader.load(new URLRequest("http://www.shapemakr.com/image/mturk/IMG_3282.JPG"));
addChild(loader);
//it's good practice though to listen for COMPLETE, IO ERROR, and SECURITY error events on the loader in case something goes wrong.
//to listen for a click:
loader.addEventListener(MouseEvent.CLICK, myClickHandler);
}
function myClickHandler(e:Event):void {
navigateToURL(new URLRequest("http://www.adobe.com"), "_self");//do something, the image was clicked
}
}
}
编辑:弄清楚如何定位图片并对其进行缩放。哇,这个 Loader 类让事情变得简单了。现在我只需要调整它以以某种方式加载图片列表、它们的 x/y 和它们的关联 url。(无论如何,是的,我把我所有的代码都放在这里很讨厌,这样将来它可能会对其他一些 n00b 有所帮助。没有什么比不完整的部分代码不起作用并且无法弄清楚如何让它发挥作用,因为它们很糟糕。从一个工作示例开始对学习过程有很大帮助,因为可以对其进行调整以更好地理解/从中学习。)
package
{
import flash.display.Sprite;
import flash.display.Shape;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.MovieClip;
import flash.events.*;
import flash.net.*;
import flash.display.*;
public class images extends Sprite
{
public function images()
{
stage.scaleMode=StageScaleMode.NO_SCALE;
stage.align=StageAlign.TOP_LEFT;
//to load an image, you can use the `Loader` class:
var loader:Loader = new Loader();
loader.x = 50; loader.y=100; loader.scaleX=.3; loader.scaleY=.3;
//loader.mask = rect;
loader.load(new URLRequest("http://www.shapemakr.com/image/mturk/IMG_3282.JPG"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderComplete);
addChild(loader);
//it's good practice though to listen for COMPLETE, IO ERROR, and SECURITY error events on the loader in case something goes wrong.
//to listen for a click:
loader.addEventListener(MouseEvent.CLICK, myClickHandler);
}
function myClickHandler(e:Event):void {
navigateToURL(new URLRequest("http://www.adobe.com"), "_self");//do something, the image was clicked
}
private function loaderComplete(e:Event):void {
// now your image is fully loaded
trace(e.target.content.width);
// etc etc, whatever you need to do with your image prior to
// addressing it from elsewhere.
}
}
}
编辑:刚刚做了一个函数,应该可以快速加载 Img-url 列表及其关联的 GOTO url。还发现你不能在 action-script3 中重载函数,至少不是常规的,便便。轻微的不便,我猜。
package
{
import flash.display.*;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.MovieClip;
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.*;
import flash.net.*;
import flashx.textLayout.formats.Float;
public class images extends Sprite
{
public function images()
{
stage.scaleMode=StageScaleMode.NO_SCALE;
stage.align=StageAlign.TOP_LEFT;
loadClickImage(50,100,"http://www.shapemakr.com/image/mturk/IMG_3282.JPG","http://adobe.com");
//loadClickScaleImage(50,100,.5,.5,"http://www.shapemakr.com/image/mturk/IMG_3282.JPG","http://adobe.com");
}
function loadClickImage(x:int,y:int,imgurl:String,gotourl:String):void
{
loadClickScaleImage(x,y,1,1,imgurl,gotourl);
}
function loadClickScaleImage(x:int,y:int,scx:Number,scy:Number,imgurl:String,gotourl:String):void
{
//to load an image, you can use the `Loader` class:
var loader:Loader = new Loader();
loader.x = x; loader.y=y; loader.scaleX=scx; loader.scaleY=scy; loader.name = gotourl;
//loader.mask = rect;
loader.load(new URLRequest(imgurl));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderComplete);
addChild(loader);
//to listen for a click:
loader.addEventListener(MouseEvent.CLICK, myClickHandler);
}
function myClickHandler(e:Event):void {
navigateToURL(new URLRequest(e.target.name), "_self");//do something, the image was clicked
}
function loaderComplete(e:Event):void {
// now your image is fully loaded
trace(e.target.content.width);
}
}
}
编辑:对于狗屎和傻笑,这里是具有适当鼠标光标效果的可点击图片库的完整来源。我创建了一个漂亮的 C# 程序来为定位和 URL 创建适当的 AS3 代码(所有“LoadClickImage()”代码),以使其看起来整洁有序。图片库看起来非常棒!
package
{
import flash.display.*;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.MovieClip;
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.*;
import flash.net.*;
import flash.ui.MouseCursor;
import flash.ui.Mouse;
public class images extends Sprite
{
var mouseIsDown:Boolean = false;
public function images()
{
stage.scaleMode=StageScaleMode.NO_SCALE;
stage.align=StageAlign.TOP_LEFT;
loadClickImage(0,0,"http://www.shapemakr.com/image/fotor/IMG_3294.JPG","http://adobe.com");
loadClickImage(260,0,"http://www.shapemakr.com/image/fotor/IMG_3295.JPG","http://adobe.com");
loadClickImage(520,0,"http://www.shapemakr.com/image/fotor/IMG_3296.JPG","http://adobe.com");
loadClickImage(0,197,"http://www.shapemakr.com/image/fotor/IMG_3297.JPG","http://adobe.com");
loadClickImage(260,197,"http://www.shapemakr.com/image/fotor/IMG_3298.JPG","http://adobe.com");
loadClickImage(520,197,"http://www.shapemakr.com/image/fotor/IMG_3299.JPG","http://adobe.com");
loadClickImage(0,394,"http://www.shapemakr.com/image/fotor/IMG_3300.JPG","http://adobe.com");
loadClickImage(260,394,"http://www.shapemakr.com/image/fotor/IMG_3301.JPG","http://adobe.com");
loadClickImage(520,394,"http://www.shapemakr.com/image/fotor/IMG_3302.JPG","http://adobe.com");
loadClickImage(0,591,"http://www.shapemakr.com/image/fotor/IMG_3303.JPG","http://adobe.com");
loadClickImage(260,591,"http://www.shapemakr.com/image/fotor/IMG_3304.JPG","http://adobe.com");
loadClickImage(520,591,"http://www.shapemakr.com/image/fotor/IMG_3305.JPG","http://adobe.com");
loadClickImage(0,788,"http://www.shapemakr.com/image/fotor/IMG_3306.JPG","http://adobe.com");
}
function loadClickImage(x:int,y:int,imgurl:String,gotourl:String):void
{
loadClickScaleImage(x,y,1,1,imgurl,gotourl);
}
function loadClickScaleImage(x:int,y:int,scx:Number,scy:Number,imgurl:String,gotourl:String):void
{
//to load an image, you can use the `Loader` class:
var loader:Loader = new Loader();
loader.x = x; loader.y=y; loader.scaleX=scx; loader.scaleY=scy; loader.name = gotourl;
//loader.mask = rect;
loader.load(new URLRequest(imgurl));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderComplete);
addChild(loader);
//to listen for a click:
loader.addEventListener(MouseEvent.CLICK, myClickHandler);
loader.addEventListener(MouseEvent.MOUSE_OVER, changeCursor);
loader.addEventListener(MouseEvent.MOUSE_OUT, resetCursor);
}
function myClickHandler(e:Event):void {
navigateToURL(new URLRequest(e.target.name), "_self");//do something, the image was clicked
//Mouse.cursor = MouseCursor.
}
private function changeCursor(e:MouseEvent)
{
Mouse.cursor = MouseCursor.BUTTON;
}
private function resetCursor(e:MouseEvent)
{
Mouse.cursor = MouseCursor.ARROW;
}
function loaderComplete(e:Event):void {
// now your image is fully loaded
// trace(e.target.content.width);
}
}
}
编辑:在鼠标悬停时添加了一些 alpha 阴影。
package
{
import flash.display.*;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.MovieClip;
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.*;
import flash.net.*;
import flash.ui.MouseCursor;
import flash.ui.Mouse;
public class images extends Sprite
{
var mouseIsDown:Boolean = false;
public function images()
{
stage.scaleMode=StageScaleMode.NO_SCALE;
stage.align=StageAlign.TOP_LEFT;
loadClickImage(0,0,"http://www.shapemakr.com/image/fotor/IMG_3294.JPG","http://adobe.com");
loadClickImage(260,0,"http://www.shapemakr.com/image/fotor/IMG_3295.JPG","http://adobe.com");
loadClickImage(520,0,"http://www.shapemakr.com/image/fotor/IMG_3296.JPG","http://adobe.com");
loadClickImage(0,197,"http://www.shapemakr.com/image/fotor/IMG_3297.JPG","http://adobe.com");
loadClickImage(260,197,"http://www.shapemakr.com/image/fotor/IMG_3298.JPG","http://adobe.com");
loadClickImage(520,197,"http://www.shapemakr.com/image/fotor/IMG_3299.JPG","http://adobe.com");
loadClickImage(0,394,"http://www.shapemakr.com/image/fotor/IMG_3300.JPG","http://adobe.com");
loadClickImage(260,394,"http://www.shapemakr.com/image/fotor/IMG_3301.JPG","http://adobe.com");
loadClickImage(520,394,"http://www.shapemakr.com/image/fotor/IMG_3302.JPG","http://adobe.com");
loadClickImage(0,591,"http://www.shapemakr.com/image/fotor/IMG_3303.JPG","http://adobe.com");
loadClickImage(260,591,"http://www.shapemakr.com/image/fotor/IMG_3304.JPG","http://adobe.com");
loadClickImage(520,591,"http://www.shapemakr.com/image/fotor/IMG_3305.JPG","http://adobe.com");
loadClickImage(0,788,"http://www.shapemakr.com/image/fotor/IMG_3306.JPG","http://adobe.com");
}
function loadClickImage(x:int,y:int,imgurl:String,gotourl:String):void
{
loadClickScaleImage(x,y,1,1,imgurl,gotourl);
}
function loadClickScaleImage(x:int,y:int,scx:Number,scy:Number,imgurl:String,gotourl:String):void
{
//to load an image, you can use the `Loader` class:
var loader:Loader = new Loader();
loader.x = x; loader.y=y; loader.scaleX=scx; loader.scaleY=scy; loader.name = gotourl;
//loader.mask = rect;
loader.load(new URLRequest(imgurl));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderComplete);
addChild(loader);
//to listen for a click:
loader.addEventListener(MouseEvent.CLICK, myClickHandler);
loader.addEventListener(MouseEvent.MOUSE_OVER, changeCursor);
loader.addEventListener(MouseEvent.MOUSE_OUT, resetCursor);
}
function myClickHandler(e:Event):void {
navigateToURL(new URLRequest(e.target.name), "_self");//do something, the image was clicked
//Mouse.cursor = MouseCursor.
}
private function changeCursor(e:Event)
{
(e.target as Loader).alpha=.85;
Mouse.cursor = MouseCursor.BUTTON;
}
private function resetCursor(e:Event)
{
(e.target as Loader).alpha=1;
Mouse.cursor = MouseCursor.ARROW;
}
function loaderComplete(e:Event):void {
// now your image is fully loaded
// trace(e.target.content.width);
}
}
}