Я строил внутри Flash Builder и только начал изучать ActionScript около 1 часа назад; Кажется, я не могу найти хороший ресурс, чтобы быстро изучить эту тему. Основная цель, что должно быть простой задачей: получить эту вещь, чтобы отобразить изображение. Кажется, что изображение правильно загружено (оно, видимо, выяснило кодировку), и оно компилируется отлично, но все, что я получаю, это пустой белый экран, когда он загружается в firefox (Flash включен и работает нормально). Может ли кто-нибудь помочь? Заполните n00b здесь. Я хорошо разбираюсь в java, C#, c, html, php и т. П., Но полный actioncript/flash n00b.Как получить эту фреймворческую карту ActionScript 3, чтобы отобразить изображение, масштабировать и поместить его, сделать его интерактивным и перейти к URL-адресу?
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();
}
}
}
Редактировать: Спасибо badfeelings! После изменения параметров размера в drawRect до размера изображения, он работает! Теперь просто нужно сжать изображение, загрузить его с 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();
}
}
}
Edit: Ого, еще раз спасибо! Этот новый код делает именно то, что мне нужно сделать, теперь мне просто нужно выяснить, как манипулировать загрузчиком, чтобы изменить размер и положение. Должно быть выполнимо с исследованиями/возиться, я уверен!
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/ys и связанные с ними URL-адреса. (Во всяком случае, да, мне неприятно вставлять весь мой код здесь, чтобы он мог помочь другому n00b в будущем. Ничего более бесит, чем неполный частичный код, который не работает, и не в состоянии понять, как заставить его работать из-за одни n00bness Имея рабочий пример, чтобы начать с очень помогает в процессе обучения, так как он может быть изменен, чтобы лучше понять/узнать оттуда)
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.
}
}
}
Edit:.. Просто сделал функцию что должно сделать загрузку списка Img-urls и связанных с ними URL-адресов GOTO. Также выясняется, что вы не можете перегружать функции в action-script3, по крайней мере, не условно, poo. Незначительные неудобства, я думаю.
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);
}
}
}
Edit: Для Шица и хихикает, вот весь источник интерактивной картинной галереи с соответствующими мышиным курсором эффектами. Я создал отличную программу на C#, чтобы создать соответствующий код AS3 для позиционирования и URL-адресов (весь код «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);
}
}
}
Редактировать: Добавлена альфа-штриховка на мыши.
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);
}
}
}
Хорошо, еще погуглить нужен я вижу. –
Если вы делаете '' 'Embed (source =" E: /Documents/Shapemakr/ebayPics/July29_TreeImagesForFBbuilding/IMG_3294.JPG ")] private var contentIconClass: Class;' '' вы должны иметь возможность использовать его так: ' '' addChild (новый contentIconClass()) '' '. Использование метаданных '' 'Embed''' приведет к созданию [BitmapAsset] (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/core/BitmapAsset.html), который расширяет растровое изображение, поэтому вы можете просто добавить его в свой список отображения –