L******d 发帖数: 611 | 1 实现一个基于XML的相册,在书上学,一步一步做出来,为什么没有效果,新手一个,
就是想从书上一步一步学起。谢谢。
这是XML的代码(一共5张图片,我做了一个img的文件夹)
Webdesign Layout 01
web
2012-02-01
img/000.jpg
To provide customers a full range of branding services
Webdesign Layout 02
Post
2012-02-01
img/001.jpg
To provide customers a full range of branding services
Webdesign Layout 03
web
2012-02-01
img/002.jpg
To provide customers a full range of branding services
Webdesign Layout 04
Post
2012-02-01
img/003.jpg
To provide customers a full range of branding services
Webdesign Layout 05
web
2012-02-01
img/004.jpg
To provide customers a full range of branding services
然后按照书上写的建立了ImageGallery.as 。要把AS关联到flash中,又新建了一个
ImageGallery.fla文件,单击舞台空白区域,然后把文档类名称输入(类:
ImageGallery)我想这样就应该关联了吧。然后ctrl+Enter测试代码。出现报错
Line 80 1120: Access of undefined property TweenLite.
Line 88 1120: Access of undefined property TweenLite.
Line 93 1120: Access of undefined property TweenLite.
Line 9 1172: Definition gs:TweenLite could not be found.
我一切都是按照书上做的,不知道哪个步骤做错了。自学flash不容易啊,慢慢在版上
学习~~谢谢各位了。
这是ImageGallery.as,我觉得应该语句没问题,毕竟是按照书上一步一步写(虽然意
思不是很明白)可能是我少做了哪一步骤
见笑了~~
package {
import flash.display.Loader;
import flash.display.MovieClip;
import flash.display.Sprite;
import XML;
import flash.net.URLLoader;
import flash.net.URLRequest
import flash.events.Event;
import gs.TweenLite 这个TweenLite是什么?书上没有教我做个着啊
,flash报错说找不到~~
import flash.events.MouseEvent;
这一步我是导入所需的类
public class ImageGallery extends Sprite {
private var thumbURL:Array = new Array()
private var originalURL:Array = new Array()
private var titleArr:Array = new Array()
private var length:Number = new Number()
private var thumbArr:Array = new Array()
private var sContainer:MovieClip;
private var bContainer:MovieClip;
public function ImageGallery(){
init()
}
private function init():void {
var myXML:XML = new XML();
var myXMLURL:URLRequest = new URLRequest("myXML.xml"
);
var myLoader:URLLoader = new URLLoader(myXMLURL);
myLoader.addEventListener("complete", xmlLoaded);
function xmlLoaded(event:Event):void {
myXML = XML(myLoader.data);
length = myXML.item.length()
for (var i:int = 0; i < length; i++){
thumbURL.push(myXML.item.thumb)
originalURL.push(myXML.item.original)
titleArr.push(myXML.item.title)
}
imgLoader()
}
}
当XML被载入,触发一个完整实践(后边的语句还没有看明白)
private function imgLoader():void {
var count:Number = 0
for (var j:int = 0; j < length; j++){
var ldr:Loader = new Loader()
ldr.load(new URLRequest(thumbURL[j]))
ldr.contentLoaderInfo.addEventListener(Event
.COMPLETE, comHandler)
sContainer = new MovieClip()
addChild(sContainer)
sContainer.addChild(ldr)
sContainer.id = j
thumbArr.push(sContainer)
function comHandler(e:Event):void {
count++
if (count == length){
imgSort()
}
}
}
}
使用一个for循环把数组内容读出来加入数组thumbArr里面
private function imgSort():void {
bContainer = new MovieClip()
addChild(bContainer)
var dis:Number = 85
for (var k:int = 0; k < length; k++){
thumbArr[k].y = 700
thumbArr[k].x = dis * k
thumbArr[k].alpha = 0.6
TweenLite.to(thumbArr[k], 1, {x: dis * k, y:
520, delay: k * 0.1});
这里出错了
thumbArr[k].addEventListener(MouseEvent.ROLL
_OVER, overHandler)
thumbArr[k].addEventListener(MouseEvent.ROLL
_OUT, outHandler)
thumbArr[k].addEventListener(MouseEvent.
CLICK, clickHandler)
}
function overHandler(e:MouseEvent):void {
TweenLite.to(e.target, 0.3, {y: 510, alpha:
1});
}
这里也是
function outHandler(e:MouseEvent):void {
TweenLite.to(e.target, 0.3, {y: 520, alpha:
0.6});
}
当鼠标触碰缩略图是需要图片亮一下
function clickHandler(e:MouseEvent):void {
if (bContainer.numChildren > 0){
bContainer.removeChildAt(0);
}
var ldr:Loader = new Loader()
ldr.load(new URLRequest(originalURL[e.
currentTarget.id]))
ldr.contentLoaderInfo.addEventListener(Event
.COMPLETE, comHandler)
bContainer.addChild(ldr)
function comHandler(e:Event):void {
bContainer.x = stage.stageWidth / 2
- bContainer.width / 2
bContainer.y = 50
}
}
}
}
} | r****y 发帖数: 26819 | 2 我已经很久没做as编程了。。。
顺便看了一下你的帖子
我选中gs.TweenLite, google了一下
http://www.greensock.com/tweenlite/
那么你的项目应该包括它的东西
要么是源代码,要么是编译好的swc。。。
【在 L******d 的大作中提到】 : 实现一个基于XML的相册,在书上学,一步一步做出来,为什么没有效果,新手一个, : 就是想从书上一步一步学起。谢谢。 : 这是XML的代码(一共5张图片,我做了一个img的文件夹) : : : : Webdesign Layout 01 : web : 2012-02-01 : img/000.jpg
| L******d 发帖数: 611 | 3 恩,不知道啊,买了一本书,在着照着书学呢~~我google看一下。 | L******d 发帖数: 611 | 4 恩,不知道啊,买了一本书,在着照着书学呢~~我google看一下。 | r****y 发帖数: 26819 | 5 AS3的package类似java,如果有其它的编程基础就很容易上手。从as2走过来反而容易糊
涂。
【在 L******d 的大作中提到】 : 恩,不知道啊,买了一本书,在着照着书学呢~~我google看一下。
| L******d 发帖数: 611 | 6 恩,导入了TweenLite.没有报错。但是flash白板了~~我是不是哪一步做错了?? | L******d 发帖数: 611 | | L******d 发帖数: 611 | 8 我把XML改了
01
2012-02-01
thumb/001.jpg
original/001.jpg
02
2012-02-01
thumb/002.jpg
original/002.jpg
03
2012-02-01
thumb/003.jpg
original/003.jpg
04
2012-02-01
thumb/004.jpg
original/004.jpg
05
2012-02-01
thumb/005.jpg
original/005.jpg
| r****y 发帖数: 26819 | 9 抱歉,我没时间看代码
不过剩下的问题应该很简单
用flash builder设断点做调试
或者加输出 mx.controls.Alert.show()
查看哪一步出错了就应该差不多了
【在 L******d 的大作中提到】 : 我把XML改了 : : : : 01 : 2012-02-01 : thumb/001.jpg : original/001.jpg : :
| L******d 发帖数: 611 | | L******d 发帖数: 611 | 11 恩,我明白出错在哪里了~~山来更改一下
private function imgSort():void {
bContainer = new MovieClip()
addChild(bContainer)
var dis:Number = 85
for (var k:int = 0; k < length; k++){
thumbArr[k].y = 700
thumbArr[k].x = dis * k
thumbArr[k].alpha = 0.6
这里的y坐标你设置成了520,在舞台之外了,所以眼睛看不到
TweenLite.to(thumbArr[k], 1, {x: dis * k, y: 520, delay: k * 0.1});
修改成0
TweenLite.to(thumbArr[k], 1, { x: dis * k, y: 0, delay: k * 0.1 } );
这样就好了 | L******d 发帖数: 611 | 12 主要就是用到了TweenLite,是一个开源缓动的类库~~恩,最后多一句,对我来说太难了
~~~ |
|